如何在控制器与 AngularJS 中的服务之间共享和更新数据



现在我正在尝试与工厂在控制器之间共享数据。 我想要的是每当我更新控件 A 中的输入值时,控件 B 中的值都会更新。你能指出我的问题在哪里吗?

var app = angular.module('app', []);
app.factory('share', function() {
    return {
        user: {}
    };
})
.controller('MainCtrl', function($scope, share) {
    $scope.user = {
        name: 'lin'
    };
    share.user.name = $scope.user.name;
    console.log(share.user.name);
})
.controller('linctr', function($scope, share) {
    $scope.super = {
        name: share.user.name
    };
});

目录:

<div ng-controller="MainCtrl">
    <input ng-model="user.name" />    
</div>
<div ng-controller='linctr'>
    <div>{{super.name}}</div>
</div>

在第二个控制器中使用:

.controller('linctr', function($scope, share) {
    $scope.super = share.user;            
});

在本例中,$scope.super指向与share.user相同的对象。否则,当您这样做时

$scope.super = { 
    name: share.user.name
}; 

supershare.user对象没有联系,它只是分配其属性name的原始值。

最新更新