Javascript angular chart.js的数据属性中的表达式
嗨,我试过在数据属性中使用这样的表达式Javascript angular chart.js的数据属性中的表达式,javascript,angularjs,angularjs-scope,angularjs-ng-repeat,chart.js,Javascript,Angularjs,Angularjs Scope,Angularjs Ng Repeat,Chart.js,嗨,我试过在数据属性中使用这样的表达式 <div ng-repeat="item in items"> <canvas data="getTheData(item.value)"></canvas> </div> 我的计划是根据用户加载的项目从工厂只获取所需的数据 问题是,这导致[$rootScope:infdig]的日志永远不会停止,即使“项”列表中只有一项 我做错了吗?你可以做这样的事情,我不确定这是否有
<div ng-repeat="item in items">
<canvas data="getTheData(item.value)"></canvas>
</div>
我的计划是根据用户加载的项目从工厂只获取所需的数据
问题是,这导致[$rootScope:infdig]的日志永远不会停止,即使“项”列表中只有一项
我做错了吗?你可以做这样的事情,我不确定这是否有效 在呈现
DOM
时调用getTheData
,您应该在该方法中传递item
,而不是item.value
<div ng-repeat="item in items" ng-init="getTheData(item)">
<canvas data="item.data"></canvas>
</div>
因此,在
getData
函数成功运行的过程中,您需要设置项.data
值,该值将被传递到canvasdata
属性。您正在将未定义的
传递到data
属性。不,我只在日志中获取我想要的数据,而不是我想要的数据。事实上,我在getTheData(item)中传递了完整的项目@Stellan请尝试一下我的回答谢谢我会尝试这个,但是只有一个问题,如果数据只加载到init上,图表是否能够更新更改?@Stellan是..当您向指令提供item.data
的引用时,随着数据的到来,它将更新图表。太棒了!非常感谢。节省了很多时间,还没有尝试过任何$watch功能,但我想它会工作的!:)@Stellan不支持watcher..使用这种方法..那会更干净..我能知道你为什么要支持watcher吗?我使用firebase作为图表的后端,我希望它们在有新数据时更新
<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);
});
};