angular chart.js 的数据属性中的表达式
Expression in data attribute for angular chart.js
您好,我试过在数据属性中使用这样的表达式
<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] 的日志永不停止,即使我在 "item" 列表中只有一项。
我做错了吗?
你可以有这样的东西,我不确定这是否有效
在渲染 DOM
时调用 getTheData
,您应该在该方法中传递 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
函数的成功中,您需要设置 item.data
值,该值将传递给 canvas 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] 的日志永不停止,即使我在 "item" 列表中只有一项。
我做错了吗?
你可以有这样的东西,我不确定这是否有效
在渲染 DOM
时调用 getTheData
,您应该在该方法中传递 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
函数的成功中,您需要设置 item.data
值,该值将传递给 canvas data
属性。