我是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 -- > ???
答案 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