0
我想澄清一下與AngularJS的數據綁定。 我希望有一個服務陣列並與多個控制器共享。服務和控制器之間的AngularJS數據綁定
我想,當一個控制器修改服務中的數據,修改是考慮到其他控制器和他們的HTML模板自動更新。
不幸的是,我成功了一點點,但不能與成角度的方式,因爲我用這個觀察者模式或angular.copy ..
當我用純角的方式嘗試,這是行不通的。
這裏的代碼的示例:
包含DATAS到共享
app.factory("MyService", [
function() {
myTableToShare = [];
return {
myTableToShared : myTableToShare,
};
}
服務
]);
該修改服務的數據控制器
app.controller('AddCtrl', [
'$scope', 'MyService', function ($scope, MyService) {
$scope.myService = MyService;
$scope.addElementToSharedTable = function(element) {
$scope.myService.myTableToShare.push(element);
};
}]);
允許打印表的DATAS到模板
app.controller('ReadCtrl', [
'$scope', 'MyService', function ($scope, MyService) {
$scope.myService = MyService;
}]);
**的打印表的元素*模板控制器*
<div ng-controller="ReadCtrl">
<ul >
<li ng-repeat="element in myService.myTableToShare">
<span>{{element.id}} - {{element.name}}</span>
</li>
</ul> </div>
我已經應用這種方法感謝differents HOWTO。不幸的是這些HOWTO沒有使用數組對象,而是一個String。這是一條路嗎?
在等待我應用模式觀察員等我通知事件從控制器到服務,但在我看來,它不是一個很好的解決方案,因爲它太冗長。
Thaks
你有沒有注意到類型:'myTableToShared:myTableToShare'?你可以設置一個plunkr或jsfiddle嗎? – apairet 2014-08-29 17:12:37