AngularJS এ কোন নির্দেশনা লেখার সময়, আমি কোন নতুন সুযোগ, একটি নতুন শিশু সুযোগ, বা একটি নতুন বিচ্ছিন্ন সুযোগ প্রয়োজন কিনা তা আমি কীভাবে সিদ্ধান্ত নেব?




angularjs-directive angularjs-scope (4)

আমি নতুন নির্দেশনা লেখার সময় কোন ধরণের সুযোগ ব্যবহার করতে হবে তা নির্ধারণ করতে সহায়তা করার জন্য কিছু নির্দেশিকা সন্ধান করছি। আদর্শভাবে, আমি এমন একটি ফ্লোচার্টের মতো কিছু পছন্দ করি যা আমাকে প্রশ্নগুলির একটি গুচ্ছের মাধ্যমে হাঁটায় এবং সঠিক উত্তরটি পপ করে - কোনও নতুন নতুন সুযোগ, নতুন সন্তানের সুযোগ বা নতুন বিচ্ছিন্ন সুযোগ - তবে সম্ভবত এটি খুব বেশি জিজ্ঞাসা করতে পারে। এখানে আমার বর্তমান পথিক নির্দেশিকা সেট আছে:

আমি সচেতন যে উপাদানটিতে একটি বিচ্ছিন্ন সুযোগের সাথে নির্দেশনা ব্যবহার করে একই উপাদানটি একই (এক) বিচ্ছিন্ন সুযোগ ব্যবহার করার জন্য অন্যান্য সমস্ত নির্দেশকে জোর করে, তাই এটি একটি পৃথক সুযোগটি ব্যবহার করা যেতে পারে কি না?

আমি আশাবাদী যে কেউ কেউ এঙ্গুলার-UI টি দল (বা অন্য যেগুলি অনেক নির্দেশ লিখেছে) থেকে তাদের অভিজ্ঞতা ভাগ করে নিতে পারে।

অনুগ্রহ করে একটি উত্তর যোগ করবেন না যা কেবল "পুনঃব্যবহারযোগ্য উপাদানগুলির জন্য একটি বিচ্ছিন্ন সুযোগ ব্যবহার করুন" বলে।


আমার ব্যক্তিগত নীতি এবং অভিজ্ঞতা:

বিচ্ছিন্ন: একটি ব্যক্তিগত স্যান্ডবক্স

আমি মাত্র কয়েকটি সুযোগ পদ্ধতি এবং ভেরিয়েবলগুলি তৈরি করতে চাই যা কেবলমাত্র আমার নির্দেশনা দ্বারা ব্যবহৃত হয় এবং ব্যবহারকারীর দ্বারা কখনও দেখা বা সরাসরি অ্যাক্সেস করা হয় না। আমি স্কোপ তথ্য আমার কাছে উপলব্ধ কি whitelist করতে চান। আমি ব্যবহারকারীকে পিতামাতার সুযোগে ফিরে যেতে অনুমতি দেওয়ার জন্য ট্রান্সক্লুশন ব্যবহার করতে পারি (অনিবন্ধিত) । আমি পরিবর্তনশীল শিশুদের মধ্যে আমার ভেরিয়েবল এবং পদ্ধতি অ্যাক্সেস করতে চান না

শিশু: কন্টেন্ট একটি উপবিভাগ

আমি স্কোপ পদ্ধতি এবং ভেরিয়েবলগুলি তৈরি করতে চাই যা ব্যবহারকারীর দ্বারা অ্যাক্সেস করা যেতে পারে , তবে আমার নির্দেশের প্রেক্ষাপটে বাইরে আশেপাশের স্কোপ (ভাইবোন এবং বাবা-মা) সম্পর্কিত নয়। আমি স্বচ্ছভাবে নিচে trickle সমস্ত পিতামাতার সুযোগ তথ্য দিতে চাই।

কেউ না: সহজ, পঠনযোগ্য নির্দেশাবলী

আমি সুযোগ সুযোগ বা ভেরিয়েবল সঙ্গে জগাখিচুড়ি প্রয়োজন না। আমি সম্ভবত এমন কিছু করছি যা scopes (যেমন সহজ jQuery প্লাগইন, বৈধতা, ইত্যাদি প্রদর্শন করা) সহ করতে হবে না।

নোট

  • আপনি ngModel বা অন্যান্য জিনিস সরাসরি আপনার সিদ্ধান্ত প্রভাবিত করা উচিত নয়। আপনি ng-model=$parent.myVal (বাচ্চা) বা ngModel: '=' (বিচ্ছিন্ন) মতো জিনিসগুলি করে অদ্ভুত আচরণকে সীমাবদ্ধ করতে পারেন।
  • Isolate + স্থানান্তরণ ভাইবোনদের নির্দেশাবলীর সব স্বাভাবিক আচরণ পুনরুদ্ধার করবে এবং পিতা-মাতার সুযোগে ফিরে আসবে, সুতরাং আপনার রায়কেও প্রভাবিত করবে না।
  • কোনও সুযোগ ছাড়াই জগাখিচুড়ি করবেন না কারণ এটি DOM এর নীচে অর্ধেকের জন্য দপ্তরে ডেটা নির্বাপনের মতো নয় তবে শীর্ষ অর্ধেক নয় যা 0 অর্থে তৈরি করে।
  • নির্দেশিকা অগ্রাধিকার মনোযোগ দিতে (এই বিষয় প্রভাবিত করতে পারেন কিভাবে কংক্রিট উদাহরণ আছে না)
  • কোন সুযোগ টাইপ সঙ্গে নির্দেশ জুড়ে যোগাযোগ বা পরিষেবা নিয়ন্ত্রকদের ব্যবহার ইনজেকশন। এছাড়াও আপনি require: '^ngModel' করতে পারেন require: '^ngModel' পিতামাতার উপাদান দেখতে।

অনেক নির্দেশাবলী লেখার পর, আমি কম isolated সুযোগ ব্যবহার করার সিদ্ধান্ত নিয়েছি। যদিও এটি দুর্দান্ত এবং আপনি তথ্যকে অন্তর্ভুক্ত করে এবং পিতামাতার স্কোকে ডেটা লিক না করে নিশ্চিত হন তবে এটি একসাথে ব্যবহার করা নির্দেশগুলির পরিমাণকে সীমাবদ্ধ করে। সুতরাং,

যদি আপনি যে নির্দেশটি লিখতে যাচ্ছেন তা সম্পূর্ণ নিজের সাথে আচরণ করতে চলেছে এবং আপনি অন্য নির্দেশাবলীর সাথে এটি ভাগ করতে যাচ্ছেন না, বিচ্ছিন্ন সুযোগের জন্য যান। (এমন একটি উপাদান যা আপনি এটিকে কেবল প্লাগইন করতে পারেন, শেষ বিকাশকারীর জন্য অনেক কাস্টমাইজেশান নয়) (যখন আপনি উপ-উপাদানগুলি লেখার চেষ্টা করেন তখন এটি খুব চতুর হয়ে যায়)

যদি আপনি যে নির্দেশটি লিখতে যাচ্ছেন তা কেবল ডম ম্যানিপুলেশনগুলি তৈরি করতে যাচ্ছে যা কোন অভ্যন্তরীণ অবস্থা, বা স্পষ্ট সুযোগ পরিবর্তনগুলি (বেশিরভাগ খুব সাধারণ জিনিস) দরকার নেই; কোন নতুন সুযোগ জন্য যান। (যেমন ngShow , ngMouseHover , ngClick , ngRepeat )

আপনি যে নির্দেশটি লিখতে যাচ্ছেন তা যদি পিতামাতার সুযোগে কিছু উপাদান পরিবর্তন করতে হয় তবে কিছু অভ্যন্তরীণ অবস্থা পরিচালনা করতে হবে, নতুন সন্তানের সুযোগের জন্য যান। (যেমন ngController )

নির্দেশাবলীর জন্য সোর্স কোডটি পরীক্ষা করে দেখুন: https://github.com/angular/angular.js/tree/master/src/ng/directive
এটা তাদের সম্পর্কে কিভাবে চিন্তা করতে সাহায্য করে


কি একটি মহান প্রশ্ন! আমি অন্যদের কি বলতে হবে শুনতে চাই, কিন্তু এখানে আমি নির্দেশিকা ব্যবহার করা হয়।

উচ্চ-উচ্চতায় প্রাইজাইজ: সুযোগটি "আঠালো" হিসাবে ব্যবহার করা হয় যা আমরা পিতামাতা নিয়ামক, নির্দেশিকা এবং নির্দেশিকা টেম্পলেটের মধ্যে যোগাযোগ করতে ব্যবহার করি।

অভিভাবক সুযোগ: scope: false , তাই কোন নতুন সুযোগ

আমি প্রায়ই এই ব্যবহার করি না, কিন্তু @ মার্করাজকোক বলেছেন, যদি নির্দেশিকা কোনও সুযোগের ভেরিয়েবল অ্যাক্সেস না করে (এবং অবশ্যই সেটাকে সেট না করে!) তবে এটি ঠিক যতটা আমি উদ্বিগ্ন। এটি সন্তানের নির্দেশাবলীর জন্যও সহায়ক যা শুধুমাত্র পিতামাতার নির্দেশের প্রসঙ্গে ব্যবহার করা হয় (যদিও এতে সর্বদা ব্যতিক্রম রয়েছে) এবং এটির একটি টেমপ্লেট নেই। মূলত কোনও টেমপ্লেটের সাথে কোনও সুযোগ ভাগ করা সম্পর্কিত নয়, কারণ আপনি স্বাভাবিকভাবে অ্যাক্সেস এবং ম্যানিপুলেশনের জন্য সেই সুযোগটি প্রকাশ করছেন (তবে আমি নিশ্চিত এই নিয়মটির ব্যতিক্রম আছে)।

উদাহরণস্বরূপ, আমি সম্প্রতি একটি নির্দেশ তৈরি করেছি যা লেখাটির প্রক্রিয়াতে আমি একটি SVG লাইব্রেরি ব্যবহার করে একটি (স্ট্যাটিক) ভেক্টর গ্রাফিক আঁকতে পারি। এটি $observe দুইটি বৈশিষ্ট্যাবলী ( width এবং height ) $observe করে এবং তার গণনাগুলির মধ্যে এটি ব্যবহার করে তবে এটি কোনও স্কোপ ভেরিয়েবল সেট করে না এবং কোনও টেমপ্লেটও সেট করে না। এটি অন্য সুযোগ তৈরি না করার জন্য একটি ভাল ব্যবহার কেস; আমরা এক প্রয়োজন হয় না, তাই কেন বিরক্ত?

তবে অন্য একটি এসভিজি নির্দেশনায়, তবে, আমার ব্যবহারের জন্য একটি ডেটা প্রয়োজন ছিল এবং অতিরিক্তভাবে সামান্য বিট স্টেট সংরক্ষণ করতে হয়েছিল। এই ক্ষেত্রে, পিতামাতার সুযোগ ব্যবহার করে বেআইনী হতে হবে (আবার, সাধারণত কথা বলা)। তাই পরিবর্তে...

শিশু সুযোগ: scope: true

একটি সন্তানের সুযোগ সঙ্গে নির্দেশাবলী প্রসঙ্গ সচেতন এবং বর্তমান সুযোগ সঙ্গে যোগাযোগ করার উদ্দেশ্যে করা হয়।

স্পষ্টতই, এটি একটি পৃথক সুযোগের একটি প্রধান সুবিধা হল যে ব্যবহারকারীরা যে কোনও গুণাবলীগুলিতে ইন্টারপোলেশন ব্যবহার করতে পারে। উদাহরণস্বরূপ class="item-type-{{item.type}}" করে একটি বিচ্ছিন্ন সুযোগ সহ নির্দেশনাটি ডিফল্টভাবে কাজ করবে না, তবে সন্তানের সুযোগের সাথে একটিতে সূক্ষ্ম কাজ করে কারণ class="item-type-{{item.type}}" হয় তা ডিফল্টরূপে এখনও পাওয়া যেতে পারে অভিভাবক সুযোগ। এছাড়াও, নির্দেশিকা নিজেই দূষণ বা অভিভাবকের ক্ষতি সম্পর্কে উদ্বেগ ছাড়াই তার নিজস্ব সুযোগের প্রসঙ্গে বৈশিষ্ট্য এবং অভিব্যক্তিগুলি নিরাপদে মূল্যায়ন করতে পারে।

উদাহরণস্বরূপ, একটি সরঞ্জামদণ্ড যা কিছু যোগ করা হয়; একটি বিচ্ছিন্ন সুযোগ কাজ করবে না (ডিফল্টরূপে, নীচের দেখুন) কারণ এটি প্রত্যাশিত যে আমরা এখানে অন্য নির্দেশাবলী বা ইন্টারপোলিত গুণাবলী ব্যবহার করব। টুলটিপ শুধু একটি বর্ধিতকরণ। তবে টুলটিপটিকে একটি উপ-নির্দেশিকা এবং / অথবা টেমপ্লেট এবং স্পষ্টভাবে নিজের রাজ্য পরিচালনা করার জন্য সুযোগের উপর কিছু জিনিস সেট করতে হবে, তাই এটি মূলত পিতামাতার সুযোগটি ব্যবহার করা সত্যিই খারাপ হবে। আমরা এটি দূষিত করছি অথবা এটি ক্ষতিকারক, এবং বুয়েনও নয়।

আমি নিজেকে একা বা পিতা বা মাতা scopes তুলনায় প্রায়ই শিশু scopes ব্যবহার করে।

সুযোগ বিচ্ছিন্ন করুন: scope: {}

এই reusable উপাদান জন্য। :-)

কিন্তু গুরুত্ব সহকারে, আমি "পুনঃব্যবহারযোগ্য উপাদান" হিসাবে মনে করি "স্বনির্ভর উপাদান"। অভিপ্রায় তারা একটি নির্দিষ্ট উদ্দেশ্যে ব্যবহার করা হয়, তাই অন্যান্য নির্দেশাবলী সঙ্গে তাদের মিশ্রন বা DOM নোডের মধ্যে অন্য interpolated গুণাবলী যোগ করার অন্তর্নিহিতভাবে ইন্দ্রিয় তোলে না।

আরো নির্দিষ্ট হতে, এই একাডেমিক কার্যকারিতাটির জন্য প্রয়োজনীয় যেকোনো কিছু পিতামাতার সুযোগের পরিপ্রেক্ষিতে নির্দিষ্ট বৈশিষ্ট্যগুলির মাধ্যমে সরবরাহ করা হয়; তারা হয় একরকম স্ট্রিং ('@'), এক-উপায় এক্সপ্রেশন ('&'), অথবা দুই-উপায় পরিবর্তনশীল বাইন্ডিং ('=')।

স্বনির্ভর উপাদানগুলিতে, এটি অন্য নির্দেশাবলী বা বৈশিষ্ট্যগুলিতে প্রয়োগ করার প্রয়োজন বোধ করে না কারণ এটি নিজেই বিদ্যমান। এর শৈলী তার নিজস্ব টেমপ্লেট দ্বারা নিয়ন্ত্রিত হয় (যদি প্রয়োজন হয়) এবং উপযুক্ত সামগ্রী স্থানান্তর করা যেতে পারে (যদি প্রয়োজন হয়)। এটি একচেটিয়া, তাই আমরা এটি একটি বিচ্ছিন্ন সুযোগে বলি: "এর সাথে জগাখিচুড়ি করবেন না। আমি আপনাকে কয়েকটি বৈশিষ্ট্যগুলির মাধ্যমে একটি সংজ্ঞায়িত API দিচ্ছি।"

একটি ভাল সর্বোত্তম অনুশীলন যতটা সম্ভব নির্দেশক লিঙ্ক এবং নিয়ামক ফাংশন থেকে অনেক টেমপ্লেট-ভিত্তিক স্টাফ বাদ দিতে হয়। এটি অন্য একটি "API- এর মত" কনফিগারেশন পয়েন্ট সরবরাহ করে: নির্দেশকের ব্যবহারকারী কেবল টেমপ্লেটটি প্রতিস্থাপন করতে পারে! কার্যকারিতা সব একই ছিল, এবং তার অভ্যন্তরীণ এপিআই স্পর্শ করা হয় নি, কিন্তু স্টাইলিং এবং DOM বাস্তবায়ন আমরা প্রয়োজন হিসাবে আমরা জগাখিচুড়ি করতে পারেন। ui / বুটস্ট্র্যাপটি কীভাবে ভালভাবে করা যায় তা একটি দুর্দান্ত উদাহরণ, কারণ পিটার এবং পেভেল দুর্দান্ত।

বিচ্ছিন্নতা scopes ট্রান্সক্লুশন সঙ্গে ব্যবহারের জন্য মহান। ট্যাব নিন; তারা কেবলমাত্র সম্পূর্ণ কার্যকারিতা নয়, তবে ট্যাবগুলির (এবং প্যানেলগুলি) যা যা চায় তা করতে গেলে তার ভিতরে যা কিছু রয়েছে তা পিতামাতার সুযোগ থেকে মুক্তভাবে মূল্যায়ন করা যেতে পারে। ট্যাবগুলি স্পষ্টভাবে তাদের নিজস্ব রাষ্ট্র রয়েছে , যা সুযোগ (টেমপ্লেটের সাথে ইন্টারঅ্যাক্ট করার জন্য) রয়েছে, কিন্তু যে অবস্থায় এটি ব্যবহার করা হয়েছিল সেটির সাথে যে রাষ্ট্রটির কোনো সম্পর্ক নেই - এটি ট্যাব নির্দেশনাকে ট্যাব নির্দেশনা যা দেয় তা সম্পূর্ণ অভ্যন্তরীণ। উপরন্তু, এটি ট্যাবগুলির সাথে অন্য কোনও নির্দেশনা ব্যবহার করার জন্য অনেক বেশি জ্ঞান দেয় না। তারা ট্যাব - এবং আমরা ইতিমধ্যে যে কার্যকারিতা পেয়েছিলাম!

আরো কার্যকারিতা দিয়ে এটির আশেপাশে বা আরো কার্যকারিতা স্থানান্তরিত করুন, তবে নির্দেশটি এটি ইতিমধ্যে কী।

যে সব বলেন, আমি মনে রাখবেন যে একটি পৃথক সুযোগের সীমাবদ্ধতা (যেমন বৈশিষ্ট্য) প্রায় উপায় আছে, @ProLoser তার উত্তরে ইঙ্গিত। উদাহরণস্বরূপ, শিশু স্কোপ বিভাগে, আমি একটি বিচ্ছিন্ন সুযোগ (ডিফল্ট অনুসারে) ব্যবহার করার সময় বিরতিহীন অদলবদল বৈশিষ্ট্যগুলিতে ইন্টারপোলেশন উল্লেখ করেছি। কিন্তু ব্যবহারকারী, উদাহরণস্বরূপ, কেবল class="item-type-{{$parent.item.type}}" এবং এটি আবার কাজ করবে। সুতরাং যদি সন্তানের সুযোগের উপর একটি বিচ্ছিন্ন সুযোগ ব্যবহার করার জন্য একটি বাধ্যতামূলক কারণ থাকে তবে আপনি এই সীমাবদ্ধতার কিছু সম্পর্কে চিন্তিত হন, তবে আপনাকে যদি প্রয়োজন হয় তবে প্রায় কার্যকরীভাবে কাজ করতে পারেন।

সারাংশ

কোন নতুন সুযোগ সঙ্গে নির্দেশাবলী শুধুমাত্র পঠনযোগ্য হয়; তারা সম্পূর্ণ বিশ্বস্ত (অর্থাত্ অ্যাপটির অভ্যন্তরীণ) এবং তারা জ্যাক স্পর্শ করে না। একটি শিশু সুযোগ সঙ্গে নির্দেশিকা কার্যকারিতা যোগ করুন , কিন্তু তারা একমাত্র কার্যকারিতা নয়। অবশেষে, স্কোপগুলি সম্পূর্ণ লক্ষ্য যা নির্দেশাবলীর জন্য পৃথক হয়; তারা একক, তাই ঠিক আছে (এবং সর্বাধিক "সঠিক") তাদের দুর্বৃত্ত হতে দেওয়া।

আমি আমার প্রাথমিক চিন্তাগুলি পেতে চেয়েছিলাম, কিন্তু আমি আরো কিছু মনে করি, আমি এটি আপডেট করব। কিন্তু পবিত্র বিষ্ঠা - এটি একটি SO উত্তর এর জন্য দীর্ঘ ...

PS: সম্পূর্ণরূপে টেনশিয়াল, কিন্তু যেহেতু আমরা স্কোপগুলি সম্পর্কে কথা বলছি, আমি "প্রোটোটাইপিকাল" বলতে পছন্দ করি, তবে অন্যরা "প্রোটোটাইপাল" পছন্দ করে, যা আরো সঠিক বলে মনে হয় তবে জিহ্বাটি ঠিক তেমন ভাল করে না। :-)


শুধু আমি আমার বর্তমান বোঝার যোগ এবং এটি অন্যান্য JS ধারণার সাথে সম্পর্কিত কিভাবে চাই।

ডিফল্ট (যেমন ঘোষিত বা সুযোগ নেই: মিথ্যা)

এই দার্শনিকভাবে বৈশ্বিক ভেরিয়েবল ব্যবহার সমতুল্য। আপনার নির্দেশিকাটি পিতা-মাতা নিয়ন্ত্রকের সবকিছু অ্যাক্সেস করতে পারে তবে এটি একই সময়ে প্রভাবিত হচ্ছে এবং একই সময়ে প্রভাবিত হচ্ছে।

সুযোগ: {}

এটি একটি মডিউলের মতো, যেটি এটি ব্যবহার করতে চায় সেটি স্পষ্টভাবে পাস করতে হবে। আপনি যদি প্রতিটি নির্দেশনা ব্যবহার করেন তবে এটি একটি পৃথক সুযোগ যা প্রতিটি জেএস ফাইল তৈরির সমতুল্য হতে পারে, আপনি সমস্ত নির্ভরতাগুলিকে ইনজেকশনের জন্য অত্যধিক ওভারহেড দিয়ে নিজের মডিউল লিখতে পারেন।

সুযোগ: শিশু

এই বৈশ্বিক পরিবর্তনশীল এবং স্পষ্ট পাসথ্রু মধ্যে মাঝারি স্থল। এটি জাভাস্ক্রিপ্টের প্রোটোটাইপ শৃঙ্খলের অনুরূপ এবং কেবল আপনাকে পিতামাতার সুযোগের একটি অনুলিপি প্রসারিত করে। যদি আপনি একটি বিচ্ছিন্ন সুযোগ তৈরি করেন এবং পিতা-মাতার সুযোগের প্রতিটি বৈশিষ্ট্য এবং ফাংশনে পাস করেন তবে এটি কার্যকরীভাবে এর সমান।

কী যে কোন নির্দেশিকা কোন ভাবেই লেখা যেতে পারে। বিভিন্ন সুযোগ ঘোষণা আপনি সংগঠিত সাহায্য করার জন্য আছে। আপনি সবকিছুকে একটি মডিউল তৈরি করতে পারেন, অথবা আপনি কেবলমাত্র বিশ্বব্যাপী ভেরিয়েবল ব্যবহার করতে পারেন এবং খুব সতর্কতা অবলম্বন করতে পারেন। রক্ষণাবেক্ষণের স্বচ্ছন্দতার জন্য যদিও যুক্তিযুক্ত যৌক্তিক অংশগুলিতে আপনার যুক্তিকে মডুলারাইজ করা আরও ভাল। একটি খোলা মেঝে এবং বন্ধ কারাগার-ঘরের মধ্যে একটি ভারসাম্য রয়েছে। কারন এটি চতুর কারণ আমি বিশ্বাস করি যে যখন লোকেরা এই সম্পর্কে জানতে পারে তখন তারা মনে করে যে তারা কীভাবে নির্দেশনাগুলি কাজ করে সে সম্পর্কে শিখছে কিন্তু প্রকৃতপক্ষে তারা কোড / লজিক সংস্থার বিষয়ে শিখছে।

আরেকটি বিষয় যা আমাকে নির্দেশ করে কিভাবে নির্দেশনা কাজ করে তা সম্পর্কে ng অন্তর্ভুক্ত। ng অন্তর্ভুক্ত আপনি এইচটিএমএল আংশিক অন্তর্ভুক্ত করতে সাহায্য করে। যখন আমি প্রথম নির্দেশাবলী ব্যবহার শুরু করি তখন আমি দেখেছি যে আপনি আপনার কোডটি কমাতে এটির টেমপ্লেট বিকল্পটি ব্যবহার করতে পারেন তবে আমি আসলে কোনও যুক্তি যুক্ত করিনি।

কৌণিকের নির্দেশনা এবং angular-ui দলের angular-ui মধ্যে অবশ্যই আমার নিজের নির্দেশনা তৈরি করতে হয়নি যা আমার কাছে গুরুত্বপূর্ণ কিছু করে তাই আমার এই দৃশ্যটি পুরোপুরি ভুল হতে পারে।





angularjs-scope