嗨,我尝试过在data属性内使用这样的表达式
<div ng-repeat="item in items">
<canvas data="getTheData(item.value)"></canvas>
</div>
并在控制器中
var getData = {
first: function(){ return angularFactory.getData() };
second: function(){ return angularFactory.getData() };
}
$scope.getTheData = function(value){
getData[value]().then(function(data){
console.log(data);
});
};
我的计划是根据用户加载的项目仅从工厂获取所需的数据。
问题是这导致[$ rootScope:infdig]的日志永不停止,即使我在“项目”列表中只有一项。
我做错了吗?
最佳答案
你可能会有这样的事情,我不确定这是否行得通
在渲染getTheData
时调用DOM
,您应该在该方法内传递item
而不是item.value
<div ng-repeat="item in items" ng-init="getTheData(item)">
<canvas data="item.data"></canvas>
</div>
码
$scope.getTheData = function(item){
getData[item.value]().then(function(data){
item.data = data;
console.log(data);
});
};
因此,在成功使用
getData
功能的内部,您需要设置将传递给canvas item.data
属性的data
值。关于javascript - angular chart.js的data属性中的表达式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32126624/