从另一个角度js控制器更新一个角度js控制器的ng-model

时间:2013-12-16 05:18:32

标签: angularjs angularjs-service

Angular Experts,

我是Angular Js的新手并尝试使用另一个控制器中的输入更新一个控制器中的输入。我不确定它是否可能?

我创建了js小提琴链接只是为了给出一个想法。

http://jsfiddle.net/MwK4T/

在此示例中,当您在控制器2的输入中输入一个值,然后单击“设置值”时,它会更新与<li></li>的绑定,但不会更新控制器1的输入。

提前致谢

2 个答案:

答案 0 :(得分:18)

我使用$ broadcast工作了。它的工作就像一个魅力。

我做了类似的事。

App.controller('Ctrl1', function($rootScope, $scope) {
  $rootScope.$broadcast('msgid', msg);
});

App.controller('Ctrl2', function($scope) {
  $scope.$on('msgid', function(event, msg) {
    console.log(msg);
  });
});

感谢您帮助我。

答案 1 :(得分:2)

最好的方法是使用该服务,我们需要尽可能地避免这个事件,看看这个

var app= angular.module('testmodule', []);
app.controller('QuestionsStatusController1',
    ['$rootScope', '$scope', 'myservice',
    function ($rootScope, $scope, myservice) {
       $scope.myservice = myservice;   
    }]);

app.controller('QuestionsStatusController2',
    ['$rootScope', '$scope', 'myservice',
    function ($rootScope, $scope, myservice) {
      $scope.myservice = myservice;
    }]);

app.service('myservice', function() {
      this.xxx = "yyy";
    });

检查working example