'=' এর অর্থ কী? কৌণিক জেএস নির্দেশিকায় বিচ্ছিন্ন সুযোগের ঘোষণায়?


127

সমতার পরে প্রশ্ন চিহ্নটির কি বিশেষ অর্থ আছে? অর্থাৎ,

scope: {foo: '=?'}

উপরের অর্থ 'ত্রুটি বাড়াবে না যদি' ফু 'সমাধান করা যায় না?

উত্তর:


154

হ্যাঁ:

'বিচ্ছিন্ন' স্কোপটি একটি অবজেক্ট হ্যাশ নেয় যা প্যারেন্ট স্কোপ থেকে প্রাপ্ত স্থানীয় স্কোপ বৈশিষ্ট্যের একটি সেটকে সংজ্ঞায়িত করে। এই স্থানীয় বৈশিষ্ট্যগুলি টেমপ্লেটগুলির জন্য মানগুলি aliasing করার জন্য দরকারী। স্থানীয় সংজ্ঞা তার উত্সটিতে স্থানীয় স্কোপ সম্পত্তির একটি হ্যাশ:

=বা =attr- স্থানীয় স্কোপ সম্পত্তি এবং attrঅ্যাট্রিবিউটের মান দ্বারা সংজ্ঞায়িত নামের পিতামাতার স্কোপ সম্পত্তির মধ্যে দ্বি-দিকনির্দেশক বাঁধাই সেট আপ করুন । যদি কোনও attrনাম নির্দিষ্ট না করা থাকে তবে বৈশিষ্ট্যটির নামটি স্থানীয় নামের মতোই ধরে নেওয়া হয়। প্রদত্ত <widget my-attr="parentModel">এবং উইজেটের সংজ্ঞা দেওয়া হয়েছে scope: { localModel:'=myAttr' }, তারপরে উইজেটের স্কোপ সম্পত্তিটি পিতামাতার স্কোপের localModelমান প্রতিফলিত করবে parentModel। যে কোনও পরিবর্তন parentModelপ্রতিফলিত হবে localModelএবং যে কোনও পরিবর্তন localModelপ্রতিফলিত হবে parentModelযদি প্যারেন্ট স্কোপ সম্পত্তিটি না থাকে তবে এটি একটি NON_ASSIGNABLE_MODEL_EXPPressION ব্যতিক্রম ছুঁড়ে দেবে। Using চ্ছিক হিসাবে সম্পত্তিটিকে পতাকাঙ্কিত করতে =?বা ব্যবহার করতে এই আচরণটি এড়াতে পারেন =?attr

স্কোপ সম্পত্তিকে প্রভাবিত করে এমন প্রতিটি ডাইজেস্টে এটি প্রত্যাশিত ত্রুটিটি ট্রিগার করা উচিত:

parentSet = parentGet.assign || function() {
// reset the change, or we will throw this exception on every $digest
lastValue = scope[scopeName] = parentGet(parentScope);
     throw Error(NON_ASSIGNABLE_MODEL_EXPRESSION + attrs[attrName] +
     ' (directive: ' + newScopeDirective.name + ')');
};

//...


if (parentValue !== scope[scopeName]) {
    // we are out of sync and need to copy
    if (parentValue !== lastValue) {
        // parent changed and it has precedence
        lastValue = scope[scopeName] = parentValue;
    } else {
        // if the parent can be assigned then do so
        parentSet(parentScope, lastValue = scope[scopeName]);
    }
}

1
বোধগম্য হয় তবে কেন এই নির্দেশনা ছোঁড়া ব্যতিক্রম হয় না । পিতামাত স্কোপ সম্পত্তি বিদ্যমান নেই এবং সুযোগ অ্যাসাইনমেন্ট একটি '=' ব্যবহার করছে না?
নিকিতা

7
মানটি এখানে সেট করা থাকলে কেবল ত্রুটিটি ছুঁড়ে দেখা যাচ্ছে: plnkr.co/edit/OSpaC6sPE0hY9yAeFghr?p= পূর্বরূপ
ম্যাট জিউনার্ট

@ এসবর এটি বর্তমানে উত্তরের সাথে যুক্ত, তবে এখানে আরও সরাসরি লিঙ্কটি রয়েছে: ডকস.আঙ্গুলারজেএস.আরপি
জেসন

3
যদিও ব্যক্তিগতভাবে আমি ইচ্ছুক যে এটি সরাসরি স্কোপ বিভাগে নথিভুক্ত করা হয়েছিল $ সংকলনে নয়।
জেসন অ্যাকসেলসন

উত্তরের জন্য ধন্যবাদ, আমি এক বছর ধরে ভালভাবে কৌণিক ব্যবহার করে আসছি এবং কখনই "=" পাইনি? একটি নির্দেশে বিকল্প। আপনি সবেমাত্র আমার দিনটি তৈরি করেছেন ;-)
উইলব্ল্যাক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.