কৌণিক নির্দেশাবলী - কখন এবং কীভাবে সংকলন, নিয়ামক, প্রাক-লিঙ্ক এবং পোস্ট-লিংক ব্যবহার করবেন [বন্ধ]


451

একটি কৌণিক নির্দেশিকা লেখার সময়, ডিওএম আচরণ, বিষয়বস্তু এবং নির্দেশকে যে উপাদানটির উপর ঘোষনা করা হয়েছে তার চেহারাটি পরিচালনা করতে নিম্নলিখিত যে কোনও ফাংশন ব্যবহার করতে পারেন:

  • কম্পাইল
  • নিয়ামক
  • প্রাক-লিঙ্ক
  • পোস্ট লিংক

কোন ফাংশনটি ব্যবহার করা উচিত সে সম্পর্কে কিছু বিভ্রান্তি রয়েছে বলে মনে হয়। এই প্রশ্নটি কভার করে:

নির্দেশিক বুনিয়াদি

ফাংশন প্রকৃতি, করণীয় এবং না

সম্পর্কিত প্রশ্নাবলী:


27
কি কি?
হিমলিট

2
@ আইয়ান দেখুন: অপারেটর ওভারলোডিং । মূলত এটি সম্প্রদায় উইকির জন্য উদ্দিষ্ট। সম্পর্কিত প্রশ্নের উত্তরগুলির অনেকগুলিই আংশিক, পুরো চিত্র সরবরাহ করে না।
ইজ্জাকি

8
এটি দুর্দান্ত বিষয়বস্তু, তবে আমরা জিজ্ঞাসা করব যে এখানে সমস্ত কিছু প্রশ্নোত্তর বিন্যাসের মধ্যেই রাখা উচিত। সম্ভবত আপনি এটি একাধিক বিযুক্ত প্রশ্নগুলির মধ্যে ছড়িয়ে দিতে চান এবং তারপরে ট্যাগ উইকি থেকে তাদের লিঙ্ক করতে চান?
ফ্লেক্সো

57
যদিও এই পোস্টটি অফ-টপিক এবং ব্লগ-ফর্মের মধ্যে রয়েছে তবে এটি কৌনিক নির্দেশাবলীর গভীরতর ব্যাখ্যা দেওয়ার ক্ষেত্রে সবচেয়ে কার্যকর ছিল। এই পোস্টটি মুছে ফেলবেন না দয়া করে, প্রশাসকদের!
এক্সেজিজিস

12
সত্যি বলতে, আমি এমনকি মূল ডক্স নিয়ে বিরক্ত করি না। একটি স্ট্যাকওভারফ্লো পোস্ট বা একটি ব্লগ সাধারণত আমাকে মূল ডক্সটি বোঝার চেষ্টা করে আমার চুল ছিঁড়ে দেওয়ার 15-30 মিনিটের বিপরীতে আমাকে কয়েক সেকেন্ডের মধ্যে যেতে দেয়।
ডেভিড

উত্তর:


168

নির্দেশের কার্যাদি কোন আদেশে কার্যকর করা হয়?

একক নির্দেশের জন্য

নিম্নলিখিত প্লাঙ্কের ভিত্তিতে , নিম্নলিখিত এইচটিএমএল মার্কআপ বিবেচনা করুন:

<body>
    <div log='some-div'></div>
</body>

নিম্নলিখিত নির্দেশাবলীর ঘোষণার সাথে:

myApp.directive('log', function() {

    return {
        controller: function( $scope, $element, $attrs, $transclude ) {
            console.log( $attrs.log + ' (controller)' );
        },
        compile: function compile( tElement, tAttributes ) {
            console.log( tAttributes.log + ' (compile)'  );
            return {
                pre: function preLink( scope, element, attributes ) {
                    console.log( attributes.log + ' (pre-link)'  );
                },
                post: function postLink( scope, element, attributes ) {
                    console.log( attributes.log + ' (post-link)'  );
                }
            };
         }
     };  

});

কনসোল আউটপুট হবে:

some-div (compile)
some-div (controller)
some-div (pre-link)
some-div (post-link)

আমরা দেখতে পাচ্ছি যে compileপ্রথমে মৃত্যুদন্ড কার্যকর করা হয়, তারপরে controller, তারপরে pre-linkএবং শেষটি হয় post-link

নেস্টেড নির্দেশের জন্য

দ্রষ্টব্য: নিম্নলিখিতগুলিতে তাদের লিঙ্ক ফাংশনে তাদের বাচ্চাদের রেন্ডার করে এমন নির্দেশের ক্ষেত্রে প্রযোজ্য নয়। বেশ কয়েকটি কৌণিক নির্দেশাবলী এটি করে (যেমন এনজিআইএফ, এনজিপিপিট, বা কোনও নির্দেশিকা সহ transclude)। এই নির্দেশিকাগুলি তাদের শিশু নির্দেশিকা বলার আগে তাদের linkকার্যকারিতা ডেকে আনে ।compile

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

<body>
    <div log='parent'>
        <div log='..first-child'></div>
        <div log='..second-child'></div>
    </div>
</body>

কনসোল আউটপুটটি এর মতো দেখাবে:

// The compile phase
parent (compile)
..first-child (compile)
..second-child (compile)

// The link phase   
parent (controller)
parent (pre-link)
..first-child (controller)
..first-child (pre-link)
..first-child (post-link)
..second-child (controller)
..second-child (pre-link)
..second-child (post-link)
parent (post-link)

আমরা এখানে দুটি পর্যায় পৃথক করতে পারি - সংকলন পর্ব এবং লিঙ্ক ফেজ।

সংকলন পর্ব

যখন ডিওএম লোড করা হয় তখন কৌণিক কম্পাইল পর্ব শুরু করে, যেখানে এটি মার্কআপটিকে উপরের নিচে অনুসরণ করে এবং compileসমস্ত নির্দেশকে কল করে। গ্রাফিকালি, আমরা এটি এর মতো প্রকাশ করতে পারি:

একটি চিত্র শিশুদের জন্য সংকলন লুপ চিত্রিত

এটি উল্লেখ করা সম্ভবত গুরুত্বপূর্ণ যে এই পর্যায়ে, সংকলন ফাংশনটি প্রাপ্ত টেমপ্লেটগুলি হ'ল উত্স টেম্পলেট (উদাহরণ টেম্পলেট নয়)।

লিঙ্ক ফেজ

ডোম উদাহরণস্বরূপ সাধারণত কোনও উত্স টেম্পলেটটি ডোমকে রেন্ডার করার ফলস্বরূপ হয়, তবে সেগুলি তৈরি করা যেতে পারে ng-repeat, বা উড়তে শুরু করা যেতে পারে।

যখনই কোনও নির্দেশের সাথে কোনও উপাদানের কোনও নতুন উদাহরণ ডিওমে রেন্ডার করা হয়, লিঙ্কের পর্ব শুরু হয়।

এই পর্যায়ে, কৌণিক কলগুলি controller, pre-linkবাচ্চাদের পুনরাবৃত্তি করে এবং post-linkসমস্ত নির্দেশকে কল করে, যেমন:

লিঙ্ক ফেজের পদক্ষেপগুলি প্রদর্শন করে একটি চিত্রণ


5
@lzhaki ফ্লোচার্ট দেখতে দুর্দান্ত দেখাচ্ছে। চার্টিং টুলসের নাম ভাগ করে নিতে মন? :)
মার্লিন

1
@مر্লিন আমি ওমনিগ্রাফেল ব্যবহার করেছি (তবে চিত্রক বা ইনস্কেপ ব্যবহার করতে পারতাম - গতি ব্যতীত, ওমনিগ্রাফল এই চিত্রে সম্পর্কিত যতটা অন্যান্য চার্টিংয়ের সরঞ্জামের চেয়ে ভাল করতে পারে না))
ইজাকি

2
@ অনন্তের প্লাঙ্কার অদৃশ্য হয়ে গেছে তাই এখানে একটি নতুন এসেছে: plnkr.co/edit/kZZks8HN0iFIY8ZaKJkA?p= পূর্বরূপ লগের বিবৃতিগুলি দেখতে JS কনসোলটি খুলুন

শিশুদের নির্দেশনার জন্য এনজি-রিপিট ব্যবহার করা হয় কেন এটি সত্য নয় ??? প্লাঙ্ক
লাকীলুক

@ লুকাইলুক আপনার প্লঙ্কটি এনজি-রিপিটের অধীনে নির্দেশনা সহ কোনও বাচ্চা পায় নি (অর্থাত্, যা যা পুনরাবৃত্তি হচ্ছে তা নির্দেশের একটি টেমপ্লেট। এটি যদি আপনি দেখেন যে তাদের সংকলনটি কেবল এনজি-রিপিটের লিঙ্কের পরে ডাকা হয়েছিল
ইজাকি

90

এই ফাংশন কলগুলির মধ্যে আর কি ঘটে?

বিভিন্ন নির্দেশ ফাংশন অপর দুই কৌণিক ফাংশন নামক মধ্যে থেকে মৃত্যুদন্ড কার্যকর করা হয় $compile(যেখানে নির্দেশ এর compileমৃত্যুদন্ড কার্যকর হয়) এবং একটি অভ্যন্তরীণ ফাংশন বলা nodeLinkFn(যেখানে নির্দেশ এর controller, preLinkএবং postLinkমৃত্যুদন্ড কার্যকর করা হয়)। নির্দেশমূলক ফাংশন বলা হওয়ার আগে এবং পরে কৌণিক কার্যের মধ্যে বিভিন্ন জিনিস ঘটে things সম্ভবত সবচেয়ে উল্লেখযোগ্যভাবে শিশু পুনরাবৃত্তি হয়। নিম্নলিখিত সরলীকৃত চিত্রটি সংকলন এবং লিঙ্ক পর্যায়ের মধ্যে কী পদক্ষেপগুলি দেখায়:

কৌণিক সংকলন এবং লিঙ্ক পর্যায়গুলি দেখানো একটি চিত্র

এই পদক্ষেপগুলি প্রদর্শন করতে, আসুন নিম্নলিখিত HTML চিহ্নটি ব্যবহার করুন:

<div ng-repeat="i in [0,1,2]">
    <my-element>
        <div>Inner content</div>
    </my-element>
</div>

নিম্নলিখিত নির্দেশাবলী সহ:

myApp.directive( 'myElement', function() {
    return {
        restrict:   'EA',
        transclude: true,
        template:   '<div>{{label}}<div ng-transclude></div></div>'
    }
});

কম্পাইল

compileএপিআই সৌন্দর্য যেমন:

compile: function compile( tElement, tAttributes ) { ... }

প্রায়শই প্যারামিটারগুলি উপসর্গযুক্ত হয় t উপাদানগুলির এবং প্রদত্ত বৈশিষ্ট্যগুলি উত্স টেমপ্লেটের পরিবর্তে উত্স টেমপ্লেটের হয়।

compileট্রান্সক্লসড কন্টেন্টে কল করার আগে (যদি থাকে) সরিয়ে ফেলা হয়, এবং টেম্পলেটটি মার্কআপে প্রয়োগ করা হয়। সুতরাং, ফাংশনটিতে সরবরাহ করা উপাদানটি compileদেখতে এরকম হবে:

<my-element>
    <div>
        "{{label}}"
        <div ng-transclude></div>
    </div>
</my-element>

লক্ষ্য করুন যে এই স্থানটিতে স্থানান্তরিত সামগ্রী পুনরায় reোকানো হয়নি।

নির্দেশকের কাছে কল অনুসরণ করা .compile , কৌণিক সমস্ত শিশু উপাদানকে অতিক্রম করবে, সেগুলি হ'ল নির্দেশের মাধ্যমে সবেমাত্র চালু করা হতে পারে (উদাহরণস্বরূপ, টেমপ্লেট উপাদানগুলি)।

তাত্ক্ষণিক সৃষ্টি

আমাদের ক্ষেত্রে উপরের উত্স টেম্পলেটটির তিনটি উদাহরণ তৈরি করা হবে (দ্বারা) by ng-repeat )। সুতরাং, নীচের ক্রমটি একবারে একবারে তিনবার কার্যকর করা হবে।

নিয়ামক

controllerএপিআই থাকে:

controller: function( $scope, $element, $attrs, $transclude ) { ... }

লিঙ্ক পর্যায়ে প্রবেশ করে লিঙ্ক ফাংশনটি দিয়ে ফেরত $compileদেওয়া এখন একটি সুযোগের সাথে সরবরাহ করা হবে।

প্রথমে, লিঙ্ক ফাংশনটি অনুরোধ করা হলে একটি শিশু সুযোগ ( scope: true) বা একটি বিচ্ছিন্ন সুযোগ ( scope: {...}) তৈরি করে।

এরপরে নিয়ামকটি কার্যকর করা হয়, উদাহরণ উপাদানটির সুযোগ সহ।

প্রি-লিংক

pre-linkএপিআই সৌন্দর্য যেমন:

function preLink( scope, element, attributes, controller ) { ... }

দিকনির্দেশকের কল .controllerএবং .preLinkকার্যের মধ্যে কার্যত কিছুই ঘটে না । কৌণিক এখনও প্রতিটি ব্যবহার করা উচিত সে সম্পর্কে সুপারিশ সরবরাহ করে।

.preLinkকলটি অনুসরণ করার পরে , লিঙ্ক ফাংশনটি প্রতিটি সন্তানের উপাদানকে অতিক্রম করবে - সঠিক লিঙ্ক ফাংশনটি কল করে এবং বর্তমান স্কোপটিকে এটি সংযুক্ত করবে (যা শিশু উপাদানগুলির জন্য প্যারেন্ট স্কোপ হিসাবে কাজ করে)।

পোস্ট-লিঙ্ক

post-linkAPI- এর যে অনুরূপ pre-linkফাংশন:

function postLink( scope, element, attributes, controller ) { ... }

সম্ভবত লক্ষ্য করার মতো যে একবার কোনও নির্দেশকের .postLinkফাংশন বলা হয়ে গেলে, তার সমস্ত বাচ্চাদের উপাদানগুলির লিঙ্ক প্রক্রিয়া বাচ্চাদের সমস্ত .postLinkকার্যাদি সহ সম্পন্ন হয়েছে ।

এর অর্থ .postLinkহ'ল সময়ের মধ্যে, বাচ্চারা 'লাইভ' প্রস্তুত। এটা অন্তর্ভুক্ত:

  • ডেটা বাঁধাই
  • প্রতিস্থাপন প্রয়োগ করা হয়েছে
  • সুযোগ সংযুক্ত

এই পর্যায়ে টেমপ্লেটটি এর মতো দেখায়:

<my-element>
    <div class="ng-binding">
        "{{label}}"
        <div ng-transclude>                
            <div class="ng-scope">Inner content</div>
        </div>
    </div>
</my-element>

3
আপনি এই অঙ্কনটি কীভাবে তৈরি করেছেন?
রয়ী নামির

6
@ রোয়নিমির ওমনিগ্রাফল।
ইজাকি

43

কিভাবে বিভিন্ন কাজ ঘোষণা করবেন?

সংকলন, নিয়ামক, প্রাক-লিঙ্ক এবং পোস্ট লিঙ্ক

যদি কেউ চারটি ফাংশন ব্যবহার করতে হয় তবে নির্দেশিকা এই ফর্মটি অনুসরণ করবে:

myApp.directive( 'myDirective', function () {
    return {
        restrict: 'EA',
        controller: function( $scope, $element, $attrs, $transclude ) {
            // Controller code goes here.
        },
        compile: function compile( tElement, tAttributes, transcludeFn ) {
            // Compile code goes here.
            return {
                pre: function preLink( scope, element, attributes, controller, transcludeFn ) {
                    // Pre-link code goes here
                },
                post: function postLink( scope, element, attributes, controller, transcludeFn ) {
                    // Post-link code goes here
                }
            };
        }
    };  
});

লক্ষ্য করুন যে সংকলন একটি প্রাক-লিঙ্ক এবং পোস্ট-লিংক উভয় ফাংশনযুক্ত একটি বস্তু প্রদান করে; কৌণিক ভাষায় আমরা বলি যে সংকলিত ফাংশনটি একটি টেম্পলেট ফাংশন দেয়

সংকলন, নিয়ামক এবং পোস্ট লিঙ্ক

যদি pre-linkপ্রয়োজনীয় না হয়, সংকলন ফাংশনটি কেবল সংজ্ঞায়িত বস্তুর পরিবর্তে পোস্ট-লিংক ফাংশনটি ফিরিয়ে দিতে পারে, যেমন:

myApp.directive( 'myDirective', function () {
    return {
        restrict: 'EA',
        controller: function( $scope, $element, $attrs, $transclude ) {
            // Controller code goes here.
        },
        compile: function compile( tElement, tAttributes, transcludeFn ) {
            // Compile code goes here.
            return function postLink( scope, element, attributes, controller, transcludeFn ) {
                    // Post-link code goes here                 
            };
        }
    };  
});

কখনও কখনও, কেউ একটি যুক্ত করতে ইচ্ছুক compile (পোস্ট) linkপদ্ধতিটি সংজ্ঞায়িত হওয়ার পরে পদ্ধতি । এই জন্য, একটি ব্যবহার করতে পারেন:

myApp.directive( 'myDirective', function () {
    return {
        restrict: 'EA',
        controller: function( $scope, $element, $attrs, $transclude ) {
            // Controller code goes here.
        },
        compile: function compile( tElement, tAttributes, transcludeFn ) {
            // Compile code goes here.

            return this.link;
        },
        link: function( scope, element, attributes, controller, transcludeFn ) {
            // Post-link code goes here
        }

    };  
});

নিয়ামক এবং পোস্ট লিঙ্ক link

যদি কোনও সংকলনের ফাংশন প্রয়োজন হয় না, তবে কেউ তার ঘোষণাটি পুরোপুরি এড়িয়ে যেতে পারে এবং এর অধীনে পোস্ট-লিংক ফাংশন সরবরাহ করতে পারে link নির্দেশকের কনফিগারেশন অবজেক্টের সম্পত্তিটির :

myApp.directive( 'myDirective', function () {
    return {
        restrict: 'EA',
        controller: function( $scope, $element, $attrs, $transclude ) {
            // Controller code goes here.
        },
        link: function postLink( scope, element, attributes, controller, transcludeFn ) {
                // Post-link code goes here                 
        },          
    };  
});

কোনও নিয়ামক নেই

উপরের উদাহরণগুলির যে কোনও একটিতে, controllerপ্রয়োজন না হলে একজন কেবল ফাংশনটি সরিয়ে ফেলতে পারে । সুতরাং উদাহরণস্বরূপ, যদি কেবলমাত্র post-linkফাংশনটির প্রয়োজন হয় তবে একজন ব্যবহার করতে পারেন:

myApp.directive( 'myDirective', function () {
    return {
        restrict: 'EA',
        link: function postLink( scope, element, attributes, controller, transcludeFn ) {
                // Post-link code goes here                 
        },          
    };  
});

31

উত্স টেম্পলেট এবং একটি উদাহরণ টেমপ্লেটের মধ্যে পার্থক্য কী?

অ্যাঙ্গুলারটি ডিওএম ম্যানিপুলেশনকে অনুমতি দেয় এর অর্থ হ'ল সংকলন প্রক্রিয়াতে ইনপুট মার্কআপটি কখনও কখনও আউটপুট থেকে পৃথক হয়। বিশেষত, কিছু ইনপুট মার্কআপ কয়েকবার ক্লোন করা হতে পারে (যেমনটি পছন্দ করে)ng-repeat রেন্ডার করার আগে ) ।

কৌণিক পরিভাষাটি কিছুটা বেমানান, তবে এটি এখনও দুটি ধরণের মার্কআপের মধ্যে পার্থক্য করে:

  • উত্স টেমপ্লেট - প্রয়োজন হলে ক্লোন করা মার্কআপ। যদি ক্লোন করা থাকে তবে এই মার্কআপটি ডিওমে রেন্ডার হবে না।
  • দৃষ্টান্ত টেমপ্লেট - ডমকে রেন্ডার করা আসল মার্কআপ। ক্লোনিং জড়িত থাকলে, প্রতিটি উদাহরণ একটি ক্লোন হবে।

নিম্নলিখিত মার্কআপটি এটি দেখায়:

<div ng-repeat="i in [0,1,2]">
    <my-directive>{{i}}</my-directive>
</div>

উত্স এইচটিএমএল সংজ্ঞায়িত করে

    <my-directive>{{i}}</my-directive>

যা উত্স টেম্পলেট হিসাবে কাজ করে।

তবে এটি কোনও ng-repeatনির্দেশনার মধ্যে আবৃত থাকায় এই উত্স টেম্পলেটটি ক্লোন করা হবে (আমাদের ক্ষেত্রে 3 বার)। এই ক্লোনগুলি উদাহরণ টেম্পলেট, প্রতিটি ডিওমে উপস্থিত হবে এবং প্রাসঙ্গিক সুযোগের সাথে আবদ্ধ থাকবে।


23

সংকলন ফাংশন

প্রতিটি নির্দেশকের compileক্রিয়াকলাপটি কেবল একবার কল করা হয়, যখন কৌণিক বুটস্ট্র্যাপ হয়।

আনুষ্ঠানিকভাবে, এটি স্থান (উত্স) টেমপ্লেট ম্যানিপুলেশনগুলি সম্পাদন করার জায়গা যা স্কোপ বা ডেটা বন্ডিং জড়িত না।

প্রাথমিকভাবে, এটি অপ্টিমাইজেশনের উদ্দেশ্যে করা হয়; নিম্নলিখিত মার্কআপ বিবেচনা করুন:

<tr ng-repeat="raw in raws">
    <my-raw></my-raw>
</tr>

<my-raw>নির্দেশ করে DOM মার্কআপ নির্দিষ্ট পরিচিতির সমষ্টি প্রতিদান দেবেন। সুতরাং আমরা হয়:

  • ng-repeatউত্স টেম্পলেট ( <my-raw>) এর সদৃশ করার অনুমতি দিন এবং তারপরে প্রতিটি উদাহরণ টেম্পলেটটির মার্কআপ সংশোধন করুন (এর বাইরে)compile ফাংশনের )।
  • কাঙ্ক্ষিত মার্কআপটি জড়িত করতে উত্স টেম্পলেটটি সংশোধন করুন ( compileফাংশনে) এবং তারপরে ng-repeatএটি সদৃশ করার অনুমতি দিন।

rawsসংগ্রহে যদি 1000 টি আইটেম থাকে তবে আধুনিক বিকল্পটি পূর্বেরগুলির চেয়ে দ্রুততর হতে পারে।

না:

  • মার্কআপ পরিচালনা করুন যাতে এটি দৃষ্টান্তগুলির (ক্লোন) টেম্পলেট হিসাবে কাজ করে।

করো না

  • ইভেন্ট হ্যান্ডলার সংযুক্ত করুন।
  • শিশু উপাদানগুলি পরীক্ষা করুন।
  • বৈশিষ্ট্যগুলিতে পর্যবেক্ষণ সেট আপ করুন।
  • সুযোগে ঘড়ি সেট আপ করুন।

20

নিয়ামক ফাংশন

controllerযখনই কোনও নতুন সম্পর্কিত উপাদান তাত্ক্ষণিকভাবে প্রতি নির্দেশের ফাংশন বলা হয়।

সরকারীভাবে, controllerফাংশনটি যেখানে এক:

  • নিয়ন্ত্রণকারীদের যুক্তি (পদ্ধতি) সংজ্ঞা দেয় যা নিয়ামকদের মধ্যে ভাগ করা যায়।
  • স্কোপ ভেরিয়েবল সূচনা করে।

আবার, এটি মনে রাখা জরুরী যে যদি নির্দেশে কোনও বিচ্ছিন্ন সুযোগ জড়িত থাকে তবে এর মধ্যে প্যারেন্ট স্কোপ থেকে উত্তরাধিকারসূত্রে প্রাপ্ত যে কোনও সম্পত্তি এখনও পাওয়া যায় না।

না:

  • নিয়ামক যুক্তি সংজ্ঞায়িত করুন
  • স্কোপ ভেরিয়েবল শুরু করুন

করো না:

  • শিশু উপাদানগুলি পরিদর্শন করুন (এগুলি এখনও সরবরাহ করা যায় না, সুযোগের সাথে আবদ্ধ, ইত্যাদি)।

আপনি যে পরিচালক যে কন্ট্রোলারের নির্দেশের মধ্যে উল্লেখ করেছেন তা সুযোগের সূচনা করার জন্য দুর্দান্ত জায়গা। এটি আবিষ্কার করতে আমার বেশ কষ্ট হয়েছিল।
jsbisht

1
কন্ট্রোলার "সুযোগ শুরু করেন না", এটি কেবল এর বাইরে ইতোমধ্যে শুরু করা সুযোগটি অ্যাক্সেস করে।
দিমিত্রি জইতসেভ

@ দিমিত্রিজাইটসেভ বিশদে ভাল মনোযোগ দিন। আমি পাঠ্য সংশোধন করেছি।
ইজাকি

19

পোস্ট-লিঙ্ক ফাংশন

যখন post-link ফাংশনটি বলা হয়, পূর্ববর্তী সমস্ত পদক্ষেপগুলি হয়েছিল - বাঁধাই, ট্রান্সক্লোকশন ইত্যাদি inding

এটি সাধারণত রেন্ডারডডমকে আরও হেরফের করার জায়গা।

না:

  • ডিওএম (রেন্ডার করা, এবং এভাবে ইনস্ট্যান্টিয়েটেড) উপাদানগুলি হেরফের করুন।
  • ইভেন্ট হ্যান্ডলার সংযুক্ত করুন।
  • শিশু উপাদানগুলি পরীক্ষা করুন।
  • বৈশিষ্ট্যগুলিতে পর্যবেক্ষণ সেট আপ করুন।
  • সুযোগে ঘড়ি সেট আপ করুন।

9
যদি কেউ লিঙ্ক ফাংশন ব্যবহার করে (প্রাক-লিঙ্ক বা পোস্ট-লিঙ্ক ছাড়াই) তবে এটি জেনে রাখা ভাল যে এটি পোস্ট-লিঙ্কের সমতুল্য।
আসফ ডেভিড

15

প্রাক লিঙ্ক ফাংশন

pre-linkযখনই কোনও নতুন সম্পর্কিত উপাদান তাত্ক্ষণিকভাবে প্রতি নির্দেশের ফাংশন বলা হয়।

সংকলন ক্রম বিভাগে আগে দেখা গেছে, pre-linkফাংশনগুলিকে অভিভাবক-পরে-শিশু post-linkবলা হয় , যেখানে ফাংশনগুলি বলা হয়child-then-parent

pre-linkফাংশন খুব কমই ব্যবহার করা হয়, কিন্তু বিশেষ পরিস্থিতিতে উপযোগী হতে পারে; উদাহরণস্বরূপ, যখন কোনও শিশু নিয়ামক পিতামাতার নিয়ামকের সাথে নিজেকে নিবন্ধিত করে তবে নিবন্ধকরণটি parent-then-childফ্যাশনে থাকতে হয় ( ngModelControllerএইভাবে কাজ করে)।

করো না:

  • শিশু উপাদানগুলি পরিদর্শন করুন (এগুলি এখনও সরবরাহ করা যায় না, সুযোগের সাথে আবদ্ধ, ইত্যাদি)।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.