嗨,我尝试过在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/

10-12 15:49