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

前端之家收集整理的这篇文章主要介绍了在AngularJS中的控制器之间共享数据前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我学习如何在控制器之间共享数据,但是我遇到了一些问题.

我有这样的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”.

猜你在找的Angularjs相关文章