我在我的控制器中调用一个方法,但是当我想记录object.name时它会激活2次。 当我想记录整个对象时,它会激活6次。你知道为什么吗?
(function(){
var app = angular.module('portfolio', ['ngRoute' ]);
app.controller('ReferenceController', function(){
this.product = references;
this.arrayLength = this.product.length;
// @TODO
this.getReferences = function(){
for(var i = 0; i < this.arrayLength; i++){
console.log(this.product[i].name);
}
return false;
};
});
var references = [
{
name: "ThisIsName",
imgUrl: "This Is Image URL",
pageUrl: "This Is Page URL",
tags: [
{tag: "web"}
]
}
];
})();
我称之为
<div ng-controller='ReferenceController as reference'>
{{reference.getReferences()}}
</div>
答案 0 :(得分:2)
这是由Angular的双向数据绑定引起的,它使用$digest
循环,因为它被调用。 (将其视为允许Angular检查值是否已更新。)
如果您只想运行一次该功能,请在您的控制器内调用它。
答案 1 :(得分:0)
不确定你具体要求但是
for(var i = 0; i < this.arrayLength; i++){
console.log(this.product[i].name);
}
本质上意味着它将从头到尾遍历整个数组,并且对于每个值,它会一次打印到控制台。因此它会为数组中的多个值打印多次。