উৎস
সিনট্যাক্স এবং ভিএম ব্যবহার করে $scope objectএবং নিয়ামক তৈরির মধ্যে পার্থক্য“controller as”
$ স্কোপ অবজেক্টটি ব্যবহার করে একটি নিয়ামক তৈরি করা হচ্ছে
সাধারণত আমরা নীচের তালিকার মতো $ স্কোপ অবজেক্টটি ব্যবহার করে একটি নিয়ামক তৈরি করি:
myApp.controller("AddController", function ($scope) {
$scope.number1;
$scope.number2;
$scope.result;
$scope.add = function () {
$scope.result = $scope.number1 + $scope.number2;
}
});
উপরে আমরা তিনটি ভেরিয়েবল এবং একটি আচরণ সহ অ্যাডকন্ট্রোলার তৈরি করছি, স্কোপ অবজেক্ট নিয়ামক এবং দর্শন ব্যবহার করে, যা একে অপরের সাথে কথা বলে। $ স্কোপ অবজেক্টটি ডেটা এবং আচরণের সাথে দেখার জন্য ব্যবহার করা হয়। এটি এক সাথে ভিউ এবং নিয়ামককে আঠালো করে।
মূলত $ স্কোপ অবজেক্টটি নিম্নলিখিত কার্য সম্পাদন করে:
নিয়ামক থেকে ভিউতে ডেটা পাস করুন
কন্ট্রোলার থেকে দর্শনে আচরণ পাস করুন
নিয়ামককে অভিভূত করে এবং একসাথে দেখুন
যখন ভিউ পরিবর্তন হয় এবং $ স্কোপ অবজেক্টের বৈশিষ্ট্য পরিবর্তিত হয় তখন and স্কোপ অবজেক্টটি পরিবর্তিত হয়
আমরা দেখার জন্য ডেটা এবং আচরণটি পাস করার জন্য একটি $ স্কোপ অবজেক্টের সাথে সম্পত্তিগুলি সংযুক্ত করি। নিয়ামকটিতে $ স্কোপ অবজেক্টটি ব্যবহার করার আগে আমাদের এটি নির্ভরতা হিসাবে নিয়ামক ফাংশনে পাস করতে হবে।
"নিয়ামক হিসাবে" সিনট্যাক্স এবং ভিএম ব্যবহার করে
নীচের তালিকাতে প্রদর্শিত কন্ট্রোলারটিকে সিনট্যাক্স এবং ভিএম ভেরিয়েবল হিসাবে ব্যবহার করে আমরা উপরের কন্ট্রোলারটিকে আবার লিখতে পারি:
myApp.controller("AddVMController", function () {
var vm = this;
vm.number1 = undefined;
vm.number2=undefined;
vm.result =undefined;
vm.add = function () {
vm.result = vm.number1 + vm.number2;
}
});
মূলত আমরা এটিকে একটি ভেরিয়েবল ভিএম-এর জন্য নির্ধারণ করছি এবং তারপরে একটি সম্পত্তি এবং আচরণ সংযুক্ত করছি। ভিউতে আমরা সংশ্লেষ হিসাবে নিয়ামক ব্যবহার করে অ্যাডভিএমকন্ট্রোলার অ্যাক্সেস করতে পারি। এটি নীচের তালিকাতে দেখানো হয়েছে:
<div ng-controller="AddVMController as vm">
<input ng-model="vm.number1" type="number" />
<input ng-model="vm.number2" type="number" />
<button class="btn btn-default" ng-click="vm.add()">Add</button>
<h3>{{vm.result}}</h3>
</div>
অবশ্যই আমরা সিন্টেক্স হিসাবে নিয়ামকটিতে "ভিএম" এর চেয়ে অন্য নামটি ব্যবহার করতে পারি। ফণা অধীনে, AngularJS $ সুযোগ বস্তু তৈরি করে এবং বৈশিষ্ট্য এবং আচরণ সংযুক্ত করে। তবে নিয়ামকটিকে সিনট্যাক্স হিসাবে ব্যবহার করে, নিয়ামকটিতে কোডটি খুব পরিষ্কার এবং কেবলমাত্র উলের নামটি ভিউতে দৃশ্যমান।
নিয়ামকটিকে সিনট্যাক্স হিসাবে ব্যবহার করার জন্য এখানে কয়েকটি পদক্ষেপ রয়েছে:
$ স্কোপ অবজেক্ট ছাড়াই একটি কন্ট্রোলার তৈরি করুন।
এটি স্থানীয় ভেরিয়েবলকে বরাদ্দ করুন। আমি ভেরিয়েবলের নামটি ভিএম হিসাবে পছন্দ করেছি, আপনি আপনার পছন্দের যে কোনও নাম চয়ন করতে পারেন।
ভিএম ভেরিয়েবলের সাথে ডেটা এবং আচরণ সংযুক্ত করুন।
ভিউতে, নিয়ামকটিকে সিনট্যাক্স হিসাবে ব্যবহার করে নিয়ামককে একটি উপাধি দিন।
আপনি নামটির কোনও নাম দিতে পারেন। আমি নেস্টেড কন্ট্রোলারগুলির সাথে কাজ না করলে আমি ভিএম ব্যবহার করতে পছন্দ করি।
কন্ট্রোলার তৈরির ক্ষেত্রে, স্কোপ অবজেক্ট অ্যাপ্রোচ বা সিনট্যাক্স হিসাবে নিয়ামক ব্যবহার করার কোনও সরাসরি সুবিধা বা অসুবিধা নেই। এটি নিখুঁতভাবে পছন্দের বিষয়, তবে নিয়ামক হিসাবে নিয়ামকটি ব্যবহার করা নিয়ন্ত্রকের জাভাস্ক্রিপ্ট কোডটিকে আরও পঠনযোগ্য করে তোলে এবং এই প্রসঙ্গে সম্পর্কিত যে কোনও সমস্যা থেকে বাধা দেয়।
$ স্কোপ অবজেক্ট পদ্ধতির নেস্টেড কন্ট্রোলার
নীচের তালিকায় প্রদর্শিত হিসাবে আমাদের দুটি নিয়ামক রয়েছে:
myApp.controller("ParentController", function ($scope) {
$scope.name = "DJ";
$scope.age = 32;
});
myApp.controller("ChildController", function ($scope) {
$scope.age = 22;
$scope.country = "India";
});
সম্পত্তি "বয়স" উভয় নিয়ামকের ভিতরে রয়েছে এবং নীচের তালিকায় এই দুটি নিয়ামককে বাসা বাঁধতে পারে:
<div ng-controller="ParentController">
<h2>Name :{{name}} </h2>
<h3>Age:{{age}}</h3>
<div ng-controller="ChildController">
<h2>Parent Name :{{name}} </h2>
<h3>Parent Age:{{$parent.age}}</h3>
<h3>Child Age:{{age}}</h3>
<h3>Country:{{country}}</h3>
</div>
</div>
আপনি যেমন দেখেন যে প্যারেন্ট কন্ট্রোলারের বয়সের সম্পত্তি অ্যাক্সেস করতে আমরা $ প্যারেন্ট.এজ ব্যবহার করছি। প্রসঙ্গ বিচ্ছেদ এখানে খুব পরিষ্কার নয়। তবে নিয়ামকটিকে সিনট্যাক্স হিসাবে ব্যবহার করে, আমরা নেস্টেড কন্ট্রোলারগুলির সাথে আরও মার্জিত উপায়ে কাজ করতে পারি। ধরে নেওয়া যাক নীচের তালিকায় প্রদর্শিত আমাদের মতো কন্ট্রোলার রয়েছে:
myApp.controller("ParentVMController", function () {
var vm = this;
vm.name = "DJ";
vm.age = 32;
});
myApp.controller("ChildVMController", function () {
var vm = this;
vm.age = 22;
vm.country = "India";
});
ভিউতে এই দুটি নিয়ামক নীচের তালিকায় দেখানো হিসাবে বাসা বাঁধতে পারে:
<div ng-controller="ParentVMController as parent">
<h2>Name :{{parent.name}} </h2>
<h3>Age:{{parent.age}}</h3>
<div ng-controller="ChildVMController as child">
<h2>Parent Name :{{parent.name}} </h2>
<h3>Parent Age:{{parent.age}}</h3>
<h3>Child Age:{{child.age}}</h3>
<h3>Country:{{child.country}}</h3>
</div>
</div>
সিনট্যাক্স হিসাবে নিয়ামক হিসাবে, আমাদের আরও পঠনযোগ্য কোড রয়েছে এবং $ প্যারেন্ট সিনট্যাক্স ব্যবহার না করে প্যারেন্ট কন্ট্রোলারের উপনাম নামটি ব্যবহার করে প্যারেন্ট সম্পত্তিটি অ্যাক্সেস করা যায়।
আমি এই পোস্টটি এই বলে শেষ করে বলব যে আপনি নিয়ামক বা $ স্কোপ অবজেক্ট হিসাবে নিয়ামকটি ব্যবহার করতে চান তা নিখুঁতভাবে আপনার পছন্দ। উভয়ের পক্ষে কোনও বিশাল সুবিধা বা অসুবিধা নেই, কেবলমাত্র যে সিনট্যাক্স হিসাবে আপনার কনটেক্সট প্রসঙ্গে নিয়ন্ত্রণ করা নিয়ন্ত্রক তার সাথে কাজ করা কিছুটা সহজ, দৃষ্টিভঙ্গিতে নেস্টেড কন্ট্রোলারের মধ্যে স্পষ্ট বিচ্ছেদ দেওয়া হয়েছে।