angularjs - ভেরিয়েবলগুলি সংরক্ষণ করতে আমি কিভাবে Angular এ $ rootScope ব্যবহার করব?




angularjs-scope angularjs-controller (6)

আমি এই $ scope করতে কোন কারণ খুঁজে পেতে। value = $ rootScope.test;

$ সুযোগ ইতিমধ্যে $ rootScope থেকে প্রোটোটাইপ উত্তরাধিকার।

এই উদাহরণ দেখুন দয়া করে

var app = angular.module('app',[]).run(function($rootScope){
$rootScope.userName = "Rezaul Hasan";
});

এখন আপনি এই ট্যাগ পরিবর্তনশীল অ্যাপ্লিকেশন ট্যাগ কোথাও কোথাও বাঁধতে পারেন।

আমি কিভাবে নিয়ামক মধ্যে পরিবর্তনশীল সংরক্ষণ করতে $rootScope ব্যবহার করব আমি পরে অন্য নিয়ামক অ্যাক্সেস করতে চান? উদাহরণ স্বরূপ:

angular.module('myApp').controller('myCtrl', function($scope) {
  var a = //something in the scope
  //put it in the root scope
});

angular.module('myApp').controller('myCtrl2', function($scope) {
  var b = //get var a from root scope somehow
  //use var b
});

আমি কিভাবে এটা করব?


এই এক অর্জন করার একাধিক উপায় আছে: -

1. $rootScope পদ্ধতিতে $rootScope যোগ করুন

.run(function ($rootScope) {
    $rootScope.name = "Peter";
});

// Controller
.controller('myController', function ($scope,$rootScope) {
    console.log("Name in rootscope ",$rootScope.name);
    OR
    console.log("Name in scope ",$scope.name);
});

2. একটি পরিষেবা তৈরি করুন এবং নিয়ামক উভয় এটি অ্যাক্সেস।

.factory('myFactory', function () {
     var object = {};

     object.users = ['John', 'James', 'Jake']; 

     return object;
})
// Controller A

.controller('ControllerA', function (myFactory) {
    console.log("In controller A ", myFactory);
})

// Controller B

.controller('ControllerB', function (myFactory) {
    console.log("In controller B ", myFactory);
})

প্রথমে $ rootScope এ মানগুলি সংরক্ষণ করুন

.run(function($rootScope){
$rootScope.myData = {name : "nikhil"}
})

.controller('myCtrl', function($scope) {
var a ="Nikhilesh";
$scope.myData.name = a;
});

.controller('myCtrl2', function($scope) {
var b = $scope.myData.name;
)}

$ rootScope সমস্ত $ সুযোগের অভিভাবক, প্রতিটি $ সুযোগটি $ rootScope ডেটার একটি অনুলিপি পায় যা আপনি $ scope ব্যবহার করে অ্যাক্সেস করতে পারেন।


যদি এটি কেবল "অন্যান্য নিয়ামকগুলিতে অ্যাক্সেস" হয় তবে আপনি তার জন্য কৌণিক সংস্থিত ব্যবহার করতে পারেন, সুবিধাটি হল; আপনি কিছু অ্যাপ্লিকেশন জুড়ে অ্যাক্সেস করতে চান এমন কিছু গ্লোবাল সেটিংস বা অন্যান্য জিনিস যুক্ত করতে পারেন

app.constant(‘appGlobals’, {
    defaultTemplatePath: '/assets/html/template/',
    appName: 'My Awesome App'
});

এবং তারপর এটি অ্যাক্সেস করুন:

app.controller(‘SomeController’, [‘appGlobals’, function SomeController(config) {
    console.log(appGlobals);
    console.log(‘default path’, appGlobals.defaultTemplatePath);
}]);

(পরীক্ষা করা হয়নি)

আরো তথ্য: http://ilikekillnerds.com/2014/11/constants-values-global-variables-in-angularjs-the-right-way/



angular.module('myApp').controller('myCtrl', function($scope, $rootScope) {
   var a = //something in the scope
   //put it in the root scope
    $rootScope.test = "TEST";
 });

angular.module('myApp').controller('myCtrl2', function($scope, $rootScope) {
   var b = //get var a from root scope somehow
   //use var b

   $scope.value = $rootScope.test;
   alert($scope.value);

 //    var b = $rootScope.test;
 //  alert(b);
 });

DEMO





rootscope