我很难弄清楚将函数绑定到JavaScript / Angular对象数组中每个项目的语法。
我尝试了各种方法,虽然在语法上可能不正确,但我觉得这里采用的方法在逻辑上是正确的。
var module = angular.module('app', [])
.controller('controller', function () {
var vm = this;
vm.foo = 5;
vm.bars = [
{
price: 1000
},
{
price: 2000
}
];
var qty = function () {
return vm.foo / this.price;
};
for(var i = 0; i < vm.bars; i++) {
vm.bars.bind(vm.bars[i], qty);
}
});
我的想法是,将每个项目的
this
与其自身绑定,将是允许每个项目在price
函数中引用其自身的qty()
属性的最佳方法,该函数位于对象外部。我基本上只是在设置数组时尝试避免将函数复制/粘贴为每个项目的属性。
最佳答案
我不确定您要在这里实现什么,但是如果您想向所有元素添加qty
函数,可以像这样完成:
var module = angular.module('app', [])
.controller('controller', function () {
var vm = this;
vm.foo = 5;
vm.bars = [
{
price: 1000
},
{
price: 2000
}
];
var qty = function () {
return vm.foo / this.price;
};
vm.bars.forEach(function(bar){
bar.qty = qty;
})
});
关于javascript - 将方法绑定(bind)到数组中的每个项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37246009/