我有一个父zone builder
控制器,其中有多个US States
,每个州都有多个邮政编码。
以下是格式基础知识的细分:
建筑控制器
app.controller("builderController", function($scope, $http, $rootScope, $timeout) {
$scope.zones = [];
});
ZIP控制器
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);
}
});
在构建器控制器内部的multiple zipControllers
内可能有builderController
我想要提供一个对象或方法来遍历所有Zip控制器,以便我可以计算总距离和每次更新其中一个子控制器时使用的邮政编码数量。
在Angular中做这样的事情的最有效方法是什么?
基本目标
所以在一个zipController
中可能有4-5个builderController
个元素我希望在builderController
中有一个名为totalZipCodes
的变量来计算总数每个控制器的每个zipCodes
数组中的邮政编码,如何使用服务或工厂执行此操作?或者还有另一种方式吗?
答案 0 :(得分:0)
将数据存储在工厂中并让控制器调用工厂进行计算。
答案 1 :(得分:0)
正如@PrinayPanday在他的评论中建议的那样,你应该使用像组件/指令这样的东西。我正在通过说我将使用术语指令和组件可互换,因为我不确定你的约束。我会通过以下方式实现这一目标:
您还可以使用子域的作用域在某些事件(例如$onInit
)上声明回调,而不是定义指令控制器。我已回答了几个这样的问题。因此,您可能会发现这些答案有助于更好地理解上述解决方案:
当我重读你的问题时,我不得不问是否有更好的方法通过在服务/模型中共享数据而不是需要自定义指令来解决这个问题?