[英]How to access object from a controller inside another controller in Angular
我試圖從另一個控制器內的一個控制器訪問對象。 例如:
控制器1
MyApp.controller('workController', function ($scope) {
$scope.xList = [
{name:'test', type:'web', link:'test', image:'iso.jpg'},
{name:'test', type:'web', link:'test', image:'iso.jpg'},
];
});
控制器2:如何從控制器1控制台記錄一個對象?
MyApp.controller('projectController', function ($scope) {
console.log('$scope.xList[1]);
});
我也嘗試了$ scope.workController.xList [1],但是沒有用。
請幫忙
范圍是為每個控制器定義的...為了在控制器之間共享數據,您仍然可以選擇使用$scope.$parent
或$rootScope
來鏈接控制器,但是我會謹慎地使用它們。
Angular Services基於單例模式。 您也可以使用它們在控制器之間共享信息,我認為這將是最好的方法。
我發現之前已經討論過了,這里有一些很好的例子:
Angular控制器的目的是將視圖和服務聯系在一起。 因此,他們並不是真的想直接互相交談。 如果需要在控制器之間進行通信,則可以使用共享服務。
MyApp.controller('workController', function($scope, SharedService){
SharedService.set([
{name:'test', type:'web', link:'test', image:'iso.jpg'},
{name:'test', type:'web', link:'test', image:'iso.jpg'},
]);
});
MyApp.controller('projectController', function($scope, SharedService){
console.log(SharedService.get());
});
MyApp.service('SharedService', function(){
var self = {
get: function(data){
return self._data;
},
set: function(data){
self._data = data
}
};
return {
get: self.get,
set: self.set
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.