কৌণিক জেএস: এনজিআইকেলে বনাম নির্দেশনা


93

কখন কোন নির্দেশনা ব্যবহার করতে হবে এবং কখন এনজিঙ্কলিউড ব্যবহার করা আরও উপযুক্ত হবে তা আমি পুরোপুরি বুঝতে পারি না। এই উদাহরণটি ধরুন: আমার একটি আংশিক রয়েছে, password-and-confirm-input-fields.htmlএটি একটি পাসওয়ার্ড প্রবেশ করানো এবং নিশ্চিত করার জন্য এইচটিএমএল। আমি উভয়ই সাইনআপ-পৃষ্ঠা এবং চেঞ্জ-পাসওয়ার্ড-পৃষ্ঠার নীচে ব্যবহার করি। এই দুটি পৃষ্ঠার প্রত্যেকটির একটি নিয়ামক রয়েছে, আংশিক এইচটিএমএলের কোনও ডেডিকেটেড নিয়ামক নেই।

আমার কী নির্দেশনা ব্যবহার করা উচিত ngInclude?


আমি প্রতিবারই একটি নির্দেশনা নিয়ে যাব, তবে আরও অভিজ্ঞ অ্যাঙ্গুলার লোকেরা কী বলবে আমি আগ্রহী।
অস্টিন মুলিনস

4
যদি এটি সত্যিই একটি স্বতন্ত্র উপাদান হয় তবে এটির সাথে সম্ভবত এটির নিজস্ব কন্ট্রোলার যুক্ত থাকতে হবে। আইএমও, আমি একটি আংশিক ব্যবহার করব - তবে, আমি আরও কিছু
ইনপুটটির

4
যদি সেই আংশিকটির জন্য কোনও জেএস কোডের প্রয়োজন হয় তবে একটি নির্দেশিকা ব্যবহার করুন। যদি এটি কেবল এইচটিএমএল থাকে তবে এনজিইনক্লুড ব্যবহার করুন।
ড্যানিয়েল বেক

উত্তর:


122

এটি আপনার কোড টুকরা থেকে আপনি কী চান তার উপর নির্ভর করে। ব্যক্তিগতভাবে, কোডটিতে যদি কোনও যুক্তি না থাকে, বা এমনকি একটি নিয়ামকের প্রয়োজন নাও থাকে, তবে আমি সাথে যাব ngInclude। আমি সাধারণত আরও বড় "স্থিতিশীল" এইচটিএমএল টুকরো রেখেছি যা আমি এখানে দৃশ্যটি বিশৃঙ্খলা করতে চাই না। (অর্থাৎ, আসুন বৃহৎ টেবিল যার ডাটা পিতা বা মাতা কন্ট্রোলার থেকে যাহাই হউক না কেন আসে বলব এটা ক্লিনার আছে। <div ng-include="bigtable.html" />সমস্ত লাইন দেখুন আপ cluttering বেশি)

যদি লজিক থাকে, ডিওএম ম্যানিপুলেশন হয় বা এটি ব্যবহারযোগ্য বিভিন্ন পরিস্থিতিতে আপনার পছন্দসই হতে হবে (ওরফে ভিন্নভাবে রেন্ডার করা) দরকার তবে directivesতার চেয়ে ভাল পছন্দ (তারা প্রথমে সাহসী হয় তবে তারা খুব শক্তিশালী, সময় দিন) ।

এনজিইনক্লুড

কখনও কখনও আপনি ngInclude'sতাদের বহিরাগত $scope/ দ্বারা প্রভাবিত দেখতে পাবেন interface। যেমন একটি বৃহত / জটিল রিপিটার বলতে দেয়। এই 2 ইন্টারফেস একসাথে আবদ্ধ কারণ এটি। যদি প্রধান কিছু $scopeপরিবর্তন হয় তবে আপনার যুক্তিটি আপনার অন্তর্ভুক্ত আংশিকের মধ্যে অবশ্যই পরিবর্তন / পরিবর্তন করতে হবে।

দিকনির্দেশনা

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

এছাড়াও, আপনি যে কোনও সময় DOM এর সাথে কথোপকথন করতে যাচ্ছেন, আপনার একটি নির্দেশিকা ব্যবহার করা উচিত। এটি পরীক্ষার জন্য এটি আরও ভাল করে তোলে এবং এই ক্রিয়াকলাপগুলিকে একটি নিয়ামক / পরিষেবা / ইত্যাদি থেকে দূরে সরিয়ে দেয় যা আপনি চান এমন কিছু!

টিপ: সীমাবদ্ধ ব্যবহার না করে তা নিশ্চিত করুন : 'ই' আপনি যদি আই 8 সম্পর্কে যত্নশীল হন! এই চারপাশে উপায় আছে, কিন্তু তারা বিরক্তিকর। জীবনকে সহজতর করুন এবং বৈশিষ্ট্য / ইত্যাদি দ্বারা আটকে দিন।<div my-directive />

উপাদানগুলি [আপডেট 3/1/2016]

কৌণিক 1.5 তে যুক্ত হয়েছে, এটি মূলত চারদিকে একটি মোড়ক রয়েছে .directve()। অংশটি বেশিরভাগ সময় ব্যবহার করা উচিত। এটি অনেকগুলি বয়লারপ্লেট নির্দেশিকা কোড সরিয়ে দেয়, পছন্দ মতো জিনিসে ডিফল্ট করে restrict: 'E', scope : {}, bindToController: true। আরও সহজেই Angular2 এ রূপান্তর করতে সক্ষম হবার জন্য আমি আপনার অ্যাপ্লিকেশনের প্রায় প্রতিটি কিছুর জন্য এগুলি ব্যবহার করার পরামর্শ দিচ্ছি।

উপসংহারে:

আপনার বেশিরভাগ সময় উপাদান এবং দিকনির্দেশক তৈরি করা উচিত ।

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


আপডেট 3/1/2016

এখন যে কৌণিক 2 ধীরে ধীরে গুটিয়ে যাচ্ছে, এবং আমরা সাধারণ ফর্ম্যাটটি জানি (অবশ্যই এখানে এবং সেখানে কিছু পরিবর্তন হবে) এটি করা কতটা গুরুত্বপূর্ণ তা যোগ করতে চেয়েছিলেন components(কখনও কখনও আপনাকে যদি সীমাবদ্ধ রাখার প্রয়োজন হয় তবে নির্দেশিকা: ' ই 'উদাহরণস্বরূপ)।

উপাদান খুব হয় অনুরূপ কৌণিক 2 এর @Component। এইভাবে আমরা একই অঞ্চলে যুক্তি & এইচটিএমএলকে এমপ্যাপুলেট করছি।


নিশ্চিত করুন যে আপনি উপাদানগুলিতে যতগুলি জিনিস সজ্জিত করতে পারেন, এটি কৌনিক 2 তে রূপান্তরটি আরও সহজ করে দেবে! (আপনি যদি রূপান্তরটি বেছে নিতে চান)

এখানে এই মাইগ্রেশন প্রক্রিয়াটি বর্ণনা করে একটি দুর্দান্ত নিবন্ধটি ব্যবহার করা হয়েছে directives(আপনি যদি অবশ্যই উপাদান ব্যবহার করতে যাচ্ছেন তবে খুব অনুরূপ): http://angular-tips.com/blog/2015/09/migrating-directives-to-angular-2/


5
আমি এই উত্তরের সাথে একমত নির্দেশাবলীর জন্য শিক্ষার বক্ররেখা খাড়া, তবে এটি পেলে এটি সত্যই পরিশোধ হয়ে যায়।
জাজি

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

এখনও বিভ্রান্তিকর .. আপনার কাছে যখন ngInclude, এই বর্ণন ব্যবহার করে একটি নিয়ামক নির্দিষ্ট করতে পারেন: stackoverflow.com/questions/13811948/...
Marwen Trabelsi

4
অবশ্যই, তবে এটি সর্বদা কোনওভাবে কোনওভাবে প্যারেন্ট কন্ট্রোলারের সাথে সংযুক্ত থাকে। কোনও নির্দেশিকা যখন টেম্পলেটটি লোড হয় তার জন্য নিজের মধ্যে একটি নিয়ামক তৈরি করতে পারে । এটি সম্পূর্ণ পৃথক হতে পারে (যদি আপনি চান)
মার্ক পাইসাক - ট্রিলন.ও

4
আপনি যা করতে পারেন সর্বোত্তম জিনিসটি এই ধারণাটিকে কারখানা বা কোনও কিছুর মধ্যে বিমূর্ত করা, আপনি কেবল কোনও linkফাংশন এবং ভয়েলা থেকে কল করতে পারেন ! এটি কোনও সন্দেহ ছাড়াই নির্দেশিকাতে বেক করা খুব ভাল হত :( @ অরউইন
মার্ক পাইসাক - ট্রিলন.ইও
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.