javascript - 如何在 Angular ng-Repeat 中动态设置 Zingchart 属性

标签 javascript angularjs zingchart

使用 AngularJS,我尝试构建一个页面,该页面为数组中的每个对象动态生成不同的 Zingchart。我的问题是——由于数据和变量名称是在页面加载时在我的 Controller 中动态生成的——我不确定如何在 Zingchart 指令中正确引用它们。

在我的 Controller 中,以下是动态生成变量的方式:

function getWeeklyNflLines(){
  oddsService.getWeeklyNflLines($stateParams.weekNumb).then(function(games){
    vm.nflLines = games;
    for (i=0; i<vm.nflLines.length; i++){
      $scope[vm.nflLines[i].AwayAbbrev] = { [Zingchart json configuration goes here] }
    }
  }
}

然后,在我看来,我尝试制作 Zingchart,我得到了:

<div ng-repeat="game in vm.nflLines>
  <div zingchart zc-json="{{game.AwayAbbrev}}" zc-width="100%" zc-height="350px"></div>
</div>

回顾一下:我在 Controller 中设置了“AwayAbbrev”$scope 变量——它应该对应于我的 ng-repeat 中的“game.AwayAbbrev”——但是当我尝试这样做时,我收到以下错误在我的浏览器中:

angular.js:13550 错误:[$parse:syntax] 语法错误:从 [{game.AwayAbbrev] 开始的表达式 [{{game.AwayAbbrev}}] 第 2 列处的 token “{”无效键}}]。

我尝试将 zc-json 属性更改为 ng-attr-zc-json 来尝试对其进行插值,但这不起作用。

知道我该如何实现这个目标吗?预先感谢您的帮助!

====

编辑:我应该提到,我还尝试完全删除大括号(例如,zc-json="game.AwayAbbrev"),尽管这解决了错误,但它没有返回任何数据。

===

编辑#2:请参阅下面 Tjaart 的回答,因为这解决了我的问题。我会注意到我的代码中还有一个与我原来的问题无关的错误;我需要包含一个 id 作为 Zingchart 属性,我在 ng-repeat 中按索引递增该属性。所以最终的代码如下所示:

<div zingchart id="pick-chart[{{$index}}]" zc-json="nflLines[game.AwayAbbrev]" zc-width="100%" zc-height="350px"></div>

最佳答案

您可以尝试将它们添加到单独的属性上,而不是直接在 $scope 上创建 json 对象:

$scope.nfLines = {};

function getWeeklyNflLines(){
  oddsService.getWeeklyNflLines($stateParams.weekNumb).then(function(games){
    vm.nflLines = games;
    for (i=0; i<vm.nflLines.length; i++){
      $scope.nfLines[vm.nflLines[i].AwayAbbrev] = { [Zingchart json configuration goes here] }
    }
  }
}

然后您可以将 HTML 更新为以下内容:

<div ng-repeat="game in vm.nflLines>
  <div zingchart zc-json="nfLines[game.AwayAbbrev]" zc-width="100%" zc-height="350px"></div>
</div>

关于javascript - 如何在 Angular ng-Repeat 中动态设置 Zingchart 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39656387/

相关文章:

charts - ZingChart - 十字准线中文本的不同颜色

Javascript:IF block 或 TRY/CATCH 哪个更有效?

javascript - InstantClick 未绑定(bind)到动态 href

javascript - ngDialog 模式不弹出

javascript - sub ng-repeats,以 Angular 获取(选中)复选框值

zingchart - 如何设置Zingchart线边框?

javascript - 尽管 onClick 应该返回 false,但表单已提交

javascript - Node passport-local 策略总是失败

Angularjs watchGroup() 不适用于服务更改

jquery - ZingChart 文档中的 "myid"是什么?