আমার একটি বিচ্ছিন্ন সুযোগের সাথে একটি নির্দেশিকা রয়েছে (যাতে আমি নির্দেশটি অন্য জায়গায় পুনরায় ব্যবহার করতে পারি), এবং যখন আমি এই নির্দেশটি একটি দিয়ে ব্যবহার করি ng-repeat
, এটি কাজ করতে ব্যর্থ হয়।
আমি এই বিষয়ে সমস্ত ডকুমেন্টেশন এবং স্ট্যাক ওভারফ্লো উত্তরগুলি পড়েছি এবং বিষয়গুলি বুঝতে পারি। আমি বিশ্বাস করি যে আমি সমস্ত স্বাভাবিক গ্যাচচাকে এড়িয়ে চলেছি।
সুতরাং আমি বুঝতে পারি যে ng-repeat
নির্দেশটি দ্বারা তৈরি স্কোপটির কারণে আমার কোডটি ব্যর্থ । আমার নিজস্ব নির্দেশিকা একটি বিচ্ছিন্ন সুযোগ তৈরি করে এবং প্যারেন্ট স্কোপের কোনও বস্তুর সাথে দ্বিমুখী ডেটা বন্ডিং করে। আমার নির্দেশিকা এই সীমাবদ্ধ ভেরিয়েবলের জন্য একটি নতুন অবজেক্ট-মান নির্ধারণ করবে এবং আমার নির্দেশিকাটি ব্যবহার না করা হলে এটি পুরোপুরি কার্যকর হয় ng-repeat
(প্যারেন্ট ভেরিয়েবলটি সঠিকভাবে আপডেট হয়)। তবে, এর সাথে ng-repeat
, অ্যাসাইনমেন্টটি স্কোপটিতে একটি নতুন ভেরিয়েবল তৈরি করে ng-repeat
এবং প্যারেন্ট ভেরিয়েবল পরিবর্তনটি দেখতে পায় না। আমি যা পড়েছি তার ভিত্তিতে এই সমস্ত প্রত্যাশিত।
আমি আরও পড়েছি যে যখন কোনও নির্দিষ্ট উপাদানটিতে একাধিক নির্দেশনা থাকে তখন কেবল একটি সুযোগ তৈরি হয়। এবং যে priority
নির্দেশাবলী প্রয়োগ করা হয় তা নির্ধারণ করার জন্য প্রতিটি নির্দেশিকায় একটি সেট করা যেতে পারে; নির্দেশগুলি অগ্রাধিকার অনুসারে বাছাই করা হয় এবং তারপরে তাদের সংকলন ফাংশনগুলি বলা হয় ( http://docs.angularjs.org/guide/directive এ শব্দ অগ্রাধিকারের সন্ধান করুন )।
সুতরাং আমি আশা করছিলাম যে আমার নির্দেশটি প্রথমে চলে এবং একটি বিচ্ছিন্ন সুযোগ তৈরি করে শেষ করে তা নিশ্চিত করার জন্য আমি অগ্রাধিকারটি ব্যবহার করতে পারি, এবং যখন ng-repeat
রান হয় তখন এটি প্যারেন্ট স্কোপ থেকে প্রোটোটাইপিকভাবে উত্তরাধিকার সূত্রে একটি সুযোগ তৈরি করার পরিবর্তে আইসোলেট-স্কোপটিকে পুনরায় ব্যবহার করে। ng-repeat
ডকুমেন্টেশন বলে যে অগ্রাধিকার পর্যায়ে যে নির্দেশ রান 1000
। এটি 1
একটি উচ্চ অগ্রাধিকার স্তর বা নিম্ন অগ্রাধিকার স্তর কিনা তা পরিষ্কার নয় । আমি যখন 1
আমার নির্দেশনায় অগ্রাধিকার স্তরটি ব্যবহার করি তখন এটি কোনও পার্থক্য করে না, তাই আমি চেষ্টা করেছিলাম 2000
। তবে এটি বিষয়টিকে আরও খারাপ করে তোলে: আমার দ্বিমুখী বাইন্ডিংগুলি হয়ে যায় undefined
এবং আমার নির্দেশিকা কোনও কিছুই প্রদর্শন করে না।
আমি আমার সমস্যাটি দেখানোর জন্য একটি বেহালতা তৈরি করেছি । আমি priority
আমার নির্দেশে সেটিং সম্পর্কে মন্তব্য করেছি। আমার কাছে নাম অবজেক্টের একটি তালিকা এবং একটি নির্দেশিকা বলা হয়েছে name-row
যা নাম অবজেক্টের প্রথম এবং শেষ নাম ক্ষেত্রগুলি দেখায়। যখন প্রদর্শিত নামটি ক্লিক করা হয়, আমি চাই এটি selected
প্রধান স্কোপের মধ্যে একটি ভেরিয়েবল সেট করে । নামের অ্যারে, selected
ভেরিয়েবলটি name-row
দ্বি-মুখী ডেটা-বাইন্ডিং ব্যবহার করে নির্দেশকে প্রেরণ করা হয় ।
আমি জানি যে কীভাবে এটি মূল স্কোপগুলিতে কল করে কাজ করতে পারে। আমি আরও জানি যে যদি selected
অন্য কোনও বস্তুর ভিতরে থাকে এবং আমি বাইরের বস্তুর সাথে আবদ্ধ থাকি তবে জিনিসগুলি কাজ করবে। তবে আমি এই মুহুর্তগুলিতে এই সমাধানগুলিতে আগ্রহী নই।
পরিবর্তে, আমার কাছে থাকা প্রশ্নগুলি হ'ল:
ng-repeat
প্রোটোটাইপিকভাবে প্যারেন্ট স্কোপ থেকে উত্তরাধিকার সূত্রে এমন সুযোগ তৈরি করা থেকে আমি কীভাবে বাধা দেব এবং এর পরিবর্তে এটি আমার নির্দেশকের বিচ্ছিন্নতা-সুযোগ ব্যবহার করবে?2000
আমার নির্দেশনায় অগ্রাধিকার স্তর কেন কাজ করছে না?- বাটারং ব্যবহার করে কী ধরণের সুযোগ ব্যবহার হচ্ছে তা জানা সম্ভব?
scope: true
আপনার নির্দেশের জন্য ব্যবহার করার পরামর্শ দিই । এছাড়াও দেখুন (যদি আপনি ইতিমধ্যে না থাকেন) স্ট্যাকওভারফ্লো / প্রশ্নগুলি / 14914213/… এছাড়াও, কেবলমাত্র নির্দেশিকা একাধিক স্থানে ব্যবহৃত হবে তার অর্থ এই নয় যে আমাদের স্বয়ংক্রিয়ভাবে একটি বিচ্ছিন্ন সুযোগ ব্যবহার করা উচিত।