Javascript 服务和控制器之间的AngularJS数据绑定
我想澄清一下AngularJS的数据绑定。 我希望使用一个阵列并与多个控制器共享它 我希望,当一个控制器修改服务中的数据时,其他控制器会考虑修改,而他们的html模板会自动更新 不幸的是,我成功了一点,但不是以角度的方式,因为我使用了观察者模式或角度。复制 当我尝试纯角度的方式时,它不起作用 下面是一个代码示例: 包含要共享的数据的服务Javascript 服务和控制器之间的AngularJS数据绑定,javascript,angularjs,scope,Javascript,Angularjs,Scope,我想澄清一下AngularJS的数据绑定。 我希望使用一个阵列并与多个控制器共享它 我希望,当一个控制器修改服务中的数据时,其他控制器会考虑修改,而他们的html模板会自动更新 不幸的是,我成功了一点,但不是以角度的方式,因为我使用了观察者模式或角度。复制 当我尝试纯角度的方式时,它不起作用 下面是一个代码示例: 包含要共享的数据的服务 app.factory( "MyService", [ function () { myTableToShare = []; return
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 );
};
}] );
app.controller( 'ReadCtrl', [
'$scope', 'MyService', function ( $scope, MyService ) {
$scope.myService = MyService;
}] );
允许将表格数据打印到模板中的控制器
app.controller( 'AddCtrl', [
'$scope', 'MyService', function ( $scope, MyService ) {
$scope.myService = MyService;
$scope.addElementToSharedTable = function( element ) {
$scope.myService.myTableToShare.push( element );
};
}] );
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>
-
{{element.id}-{{element.name}
由于不同的方法,我已经应用了这种方法。不幸的是,这些HOWTO并没有使用数组对象,而是使用字符串。这是一条要走的路吗
在等待中,我应用了模式observer et,将事件从控制器通知给服务,但在我看来,这不是一个好的解决方案,因为它太冗长了
Thaks如果控制器位于同一模块“app”中,则使用app.value(…)。您是否注意到类型:
myTableToShared:myTableToShare
?你能安装一个plunkr或JSFIDLE吗?