我学习了如何在控制器之间共享数据,但遇到了一些问题。
我有这样的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(使用前将#替换为@)