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