Javascript 在另一个控制器中运行一个角度控制器的功能
我有两个列表页面:类别和该类别的产品。模块代码:Javascript 在另一个控制器中运行一个角度控制器的功能,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,我有两个列表页面:类别和该类别的产品。模块代码: var shop = angular.module('shop', []); shop.controller('Products', ['$scope', '$http', '$rootScope', function($scope, $http, $rootScope) { $scope.products = []; $scope.update = function () { $http.p
var shop = angular.module('shop', []);
shop.controller('Products', ['$scope', '$http', '$rootScope', function($scope, $http, $rootScope) {
$scope.products = [];
$scope.update = function () {
$http.post('/shop/products', {
category_id: $rootScope.category_id
})
.success(function(response, status){
$scope.products = response.data;
})
.error(function(data, status){ });
};
}]);
shop.controller('Categories', ['$scope', '$http', '$rootScope', function($scope, $http, $rootScope) {
$scope.categories = [
{ name: 'games', id: 1 }, { name: 'films', id: 2 }
]
$rootScope.category_id = '-1';
$scope.select = function (id) {
$rootScope.category_id = id;
// Need to run an update of Product controller
}
}]);
当用户通过单击选择类别时,我需要使用从服务器收到的新产品(按所选类别过滤)更新产品列表。问题是如何在Categories controller中运行Products controller的更新功能?
我知道事件广播的简易方法,但这不是最好的解决方案。欢迎访问该网站。请问一个问题。这并不是一个问题。你需要工厂方面的帮助吗?您是否希望人们查看您的代码?您的描述也非常本地化。我们不知道你在做什么项目。但是我们是程序员,所以我们知道数据类型、结构、算法等。使用这个短语,人们可以快速看到您遇到的问题类型,而不是专注于具体任务的细节。希望能有帮助。嗨,富兰克林。我更新了这个问题,使之非常简单明了。您应该使用一个服务在多个控制器之间共享信息,或者如您所说设置一组发射/广播事件。或者更具体地说,是的,通过服务,我可以访问任何控制器中的数据,但我不能从一个控制器更新另一个控制器的范围(仅通过事件)