加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在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”.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读