【问题标题】:Use nvd3 within custom directive在自定义指令中使用 nvd3
【发布时间】:2014-11-15 16:01:57
【问题描述】:

让这段代码工作我快疯了:

我有几个图表可以显示不同的数据,我创建了一个指令来显示这些图表。

这是main.html:

<div ng-controller="data in server.data">
    <chart data="data.values" diff="getDifference(data.values)"></chart>

我的指令:

return {
      templateUrl: '/views/chart.html',
      restrict: 'E',
      scope: {
        data: '=data',
        diff: '&'
      }
    };

我的图表模板:

<nvd3 options="pieOptions" data="{{data}}"></nvd3>
<div class="test-passed-percentage">
  <p>{{diff(data)}}%<span>tests passed</span></p>
</div>

如果我注释掉 nvd3 指令,它可以正常工作。但显然我需要它......

在控制台日志中我有这个错误:

错误:[$parse:syntax] 语法错误:令牌“数据”是意外的,在表达式 [{{data}}] 的第 3 列应为 [:],从 [data}}] 开始。

如何在我的模板中包含 nvd3 指令?

【问题讨论】:

  • Nothing work... 究竟是什么不起作用?你有什么例外吗?
  • 作为旁注:getDifference 我会写在 common servie/factory
  • 1.你的指令名称真的是result,而不是results吗? 2. 这不是我们将参数传递给&amp; 方法获得的函数的方式。
  • 一切都很好,我在控制台中没有错误......它只是在浏览器中呈现这个:{{diff(data)}} 而不是值......
  • 但是什么是:ng-controller="data in server.data"??

标签: javascript angularjs nvd3.js


【解决方案1】:

试试这个:

<p>{{diff()}}%<span>tests passed</span></p>

或者这个:

<p>{{diff({ data: data })}}%<span>tests passed</span></p>

【讨论】:

  • 感谢您的回答。该错误是由nvd3 指令引起的。
猜你喜欢
  • 2016-11-30
  • 2012-12-14
  • 2015-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多