我学习如何在控制器之间共享数据,但是我遇到了一些问题.
我有这样的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”.