在AngularJS中的控制器之间共享数据
发布时间:2020-12-17 17:55:57 所属栏目:安全 来源:网络整理
导读:我学习如何在控制器之间共享数据,但是我遇到了一些问题. 我有这样的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
我学习如何在控制器之间共享数据,但是我遇到了一些问题.
我有这样的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”.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |