javascript - কৌণিক মধ্যে অভিভাবক সুযোগ পরিবর্তনশীল আপডেট করুন




angularjs angularjs-scope (4)

আমি অন্য মধ্যে আবৃত দুটি কন্ট্রোলার আছে। এখন আমি সন্তানের সুযোগ পিতামাতার সুযোগ থেকে সম্পত্তি উত্তরাধিকারী জানি কিন্তু প্যারেন্ট স্কোপ পরিবর্তনশীল আপডেট করার উপায় আছে? এ পর্যন্ত আমি কোন সুস্পষ্ট সমাধান জুড়ে আসে না।

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


আপনি পিতামাতার সুযোগে একটি বস্তু (আদিম নয়) ব্যবহার করতে হবে এবং তারপরে আপনি সরাসরি সন্তানের সুযোগ থেকে এটি আপডেট করতে সক্ষম হবেন

মূল:

app.controller('ctrlParent',function($scope){
    $scope.parentprimitive = "someprimitive";
    $scope.parentobj = {};
    $scope.parentobj.parentproperty = "someproperty";
});

শিশুঃ

app.controller('ctrlChild',function($scope){
    $scope.parentprimitive = "this will NOT modify the parent"; //new child scope variable
    $scope.parentobj.parentproperty = "this WILL modify the parent";
});

কাজ ডেমো : http://jsfiddle.net/sh0ber/xxNxj/

AngularJS এ সুযোগ প্রোটোটাইপ / প্রোটোটিকাল উত্তরাধিকার সূচনা কি দেখুন?


এই কাজটি করার আরেকটি উপায় রয়েছে এবং $scope.$parent ব্যবহার করবেন না $scope.$parent পরিবর্তনশীল।

শুধুমাত্র পিতামাতার সুযোগ মান পরিবর্তন করার জন্য একটি পদ্ধতি প্রস্তুত করুন এবং এটি শিশুটিকে ব্যবহার করুন। এটার মত:

app.controller('ctrlParent',function($scope) {
  $scope.simpleValue = 'x';
  $scope.changeSimpleValue = function(newVal) {
    $scope.simpleValue = newVal;
  };
});

app.controller('ctrlChild',function($scope){
    $scope.changeSimpleValue('y');
});

এটি কাজ করে এবং মান পরিবর্তনগুলির উপর আপনাকে আরো নিয়ন্ত্রণ দেয়।

এমনকি আপনি HTML এ এমনকি পদ্ধতিতে কল করতে পারেন: <a ng-click="changeSimpleValue('y')" href="#">click me!</a>


পিতামাতার ঘোষণা করা ভেরিয়েবল অ্যাক্সেসের জন্য, আমাদের সন্তানের নিয়ামক বা টেমপ্লেট ফাইলে $ অভিভাবক ব্যবহার করা উচিত

নিয়ামক মধ্যে

$scope.$parent.varaiable_name

HTML টেমপ্লেটে

ng-model="$parent.varaiable_name"

যখন আপনি একটি সুযোগে একটি আদিম বৈশিষ্ট্য বরাদ্দ করেন, এটি সর্বদা সুযোগ (সম্ভবত ফ্লাইতে তৈরি করা) -এর জন্য স্থানীয়, এমনকি যদি কোনও পিতামাতার সুযোগ একই নামের সাথে একটি বৈশিষ্ট্য থাকে। এটি একটি নকশা সিদ্ধান্ত, এবং একটি ভাল একটি IMHO।

আপনি যদি অভিভাবকের সুযোগে কিছু আদিম (ইনট, বুলিয়ানস, স্ট্রিং) পরিবর্তন করতে চান তবে দৃশ্যটি থেকে অন্য বস্তুর বৈশিষ্ট্য হিসাবে আপনাকে এটির প্রয়োজন হয়, তাই নিয়োগটি পড়তে পারে:

<a ng-click="viewData.myAttr = 4">Click me!</a>

এবং এটি, পালা হবে:

  1. viewData অবজেক্টটি যেকোনো সুযোগ থেকে সংজ্ঞায়িত করুন
  2. তার myAttr বৈশিষ্ট্য 4 বরাদ্দ করুন।




angularjs-scope