Javascript 在AngularJS中,如何从父作用域访问多个子作用域
我有一个父级Javascript 在AngularJS中,如何从父作用域访问多个子作用域,javascript,angularjs,Javascript,Angularjs,我有一个父级区域生成器控制器,它有多个美国州,每个州可以有几个邮政编码 以下是该格式的基本内容: 建造商控制员 app.controller("builderController", function($scope, $http, $rootScope, $timeout) { $scope.zones = []; }); app.controller("zipController", function($scope, $http, $rootScope, $timeout) { $
区域生成器
控制器,它有多个美国州
,每个州可以有几个邮政编码
以下是该格式的基本内容:
建造商控制员
app.controller("builderController", function($scope, $http, $rootScope, $timeout) {
$scope.zones = [];
});
app.controller("zipController", function($scope, $http, $rootScope, $timeout) {
$scope.zipCodes = [];
$scope.addZipCode = function() {
$scope.zipCodes.push({code: '', distance: '25mi'});
}
$scope.removeZipCode = function(index) {
console.log(index, 'index removing');
$scope.zipCodes.splice(index, 1);
}
});
ZIP控制器
app.controller("builderController", function($scope, $http, $rootScope, $timeout) {
$scope.zones = [];
});
app.controller("zipController", function($scope, $http, $rootScope, $timeout) {
$scope.zipCodes = [];
$scope.addZipCode = function() {
$scope.zipCodes.push({code: '', distance: '25mi'});
}
$scope.removeZipCode = function(index) {
console.log(index, 'index removing');
$scope.zipCodes.splice(index, 1);
}
});
在一个builderController
中可以有多个zipccontroller
在builderController内部,我想找到一个对象或方法来迭代所有Zip控制器,以便每次更新一个子控制器时,我可以计算总距离和使用的Zip代码数
在这种情况下,最有效的方法是什么
基本目标
因此,在一个
builderController
中可能有4-5个zipcoder
元素,我想在builderController
中有一个变量,称为totalZipCodes
,它计算每个zipCodes
数组中每个控制器的邮政编码总数,我将如何通过服务或工厂做到这一点?或者有其他方法吗?将数据存储在工厂中,让控制器调用工厂进行计算。一般方法
正如@PrinayPanday在他的评论中所建议的,您应该使用组件/指令之类的东西来实现这一点。我在前面说,我将交替使用术语指令和组件,因为我不确定您的约束条件。为此,我将采取以下措施:
- 创建定义指令控制器的父指令
- 创建需要父指令控制器的子指令
- 当子指令初始化时,它将向父控制器注册自身
- 使用父控制器的子指令控制器列表执行所需操作
$onInit
),而不是定义指令控制器。我已经回答了几个这样的问题。因此,您可能会发现这些答案有助于进一步了解上述解决方案:
在我重新阅读您的问题时,我不得不问,是否有更好的方法来解决这个问题,在服务/模型中共享数据,而不是需要自定义指令 我肯定会考虑使用组件。您可以将绑定传递到可以在builder controllerI中跟踪的组件。我并不真正了解服务,或者服务的用途或功能是什么。您可以将服务注入到其他角度实体中。您可以为您的子组件创建具有添加/删除API的服务。您还可以创建一个getList API,以便父控制器也可以访问它。考虑到您是angular的新手,我会在我的回答中采用这种方法,而不是指令/组件路线。是否有简单的示例,这真的没有意义。我想计算所有控制员的有效邮政编码总数。你能提供一些例子吗?我发现了一个粗略的例子:。工厂存储所有数据,并具有访问这些数据的服务/功能。控制器调用工厂函数来添加/获取数据。