如何双重绑定?

时间:2015-08-21 15:07:00

标签: javascript angularjs

我是angularJS的新手。我有一个表,我发出请求并在我的tablerow中输出一些默认数据。现在我想在同一个表中发出不同的请求并输出其他数据,但这次是从Controller1。我怎么能这样做?

HTML

 <tr ng-repeat="stats in statsFromTable" ng-show="statsFromTable.length > 0">
     <td><span ng-bind="stats.PERS"></span></td>

的JavaScript

 Controller2 -- > $scope.statsFromTable = data.REQUEST_ATTRIBUTES.historyList; // the first default request
 Controller1 -- > ???

2 个答案:

答案 0 :(得分:3)

请勿使用$ rootScope在控制器之间共享信息。对于该purpouse,您可以使用service

所以你的代码看起来像:

angular.
 module('yourAngularModule', []).
  controller('MyController', ['$scope','myService', function ($scope, myService) {
    $scope.number1 = myService.number;
  }]).
  controller('MyController2', ['$scope','myService', function ($scope, myService) {
    $scope.number2 = myService.number;
  }]).
 service('myService', [function() {
    var service = {
      number:0
    };
   return service;

  }]);
})(window.angular);

然后你可以绑定数据,如:

<div ng-controller="MyController">
    <h3>Controller 1</h3>
    {{number1}}  // Will display service.number --> 0
</div>

<div ng-controller="MyController2">
    <h3> Controller 2</h3>
    {{number2}} //  Will display service.number --> 0
</div>

did a plnkr您可以在其中查看两个不同的控制器如何通过服务共享信息。

答案 1 :(得分:-3)

您可以使用$ rootScope执行此操作。这是我创建的example demo