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 属性。