在 AngularJS 中的控制器之间共享数据

2024-04-28

我学习了如何在控制器之间共享数据,但遇到了一些问题。

我有这样的html视图:

<div ng-app="MyApp">
    <div ng-controller="firstCtrl">
        <input type="text" ng-model="data.message"/>    
        {{data.message}} 
    </div>
    <div ng-controller="secondCtrl">
        <input type="text" ng-model="data.message"/>    
        {{data.message}}    
    </div>
    <div ng-controller="thirdCtrl">
        <input type="text" ng-model="data.message"/>    
        {{dataTwo.messageTwo}}
    </div>  
</div>  

我的脚本如下所示:

var myApp = angular.module("MyApp",[]);

myApp.service("Data", function() {
    return {
        message : "Hello World",
    }
 });

function firstCtrl($scope, Data) {
    $scope.data = Data; 
};

function secondCtrl($scope, Data) {
    $scope.data = Data;     
};

function thirdCtrl($scope, Data) {

    $scope.data = Data; 
    $scope.dataTwo = {
        messageTwo : $scope.data.message    
    };

};

我使用“服务”连接我的控制器。一切正常,但在第三个控制器中,当我将新值传递到输入字段时,“dataTwo.messageTwo”没有改变。dataTwo.messageTwoi 的值始终相同(“Hello World”)。

我做错了什么?


dataTwo.messageTwo不绑定到$scope.data.message。它只在创建控制器期间获取一次其值。所以不可能以这种方式进行绑定。
如果您希望更改 dataTwo,则需要在输入模型中定义它,如下所示:ng-model="dataTwo.messageTwo".

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 AngularJS 中的控制器之间共享数据 的相关文章

随机推荐