【问题标题】:Angular directive async data not binding?Angular指令异步数据不绑定?
【发布时间】:2016-10-21 07:59:11
【问题描述】:

这是我尝试实现指令的示例代码:donut-chart.directive

我修改了这个控制器 js (code) 以使用 $http.get 从 web api 获取数据

但这里没有将数据传递给指令,它是隔离范围内的undefined。请为此提供合适的解决方案。

谢谢

【问题讨论】:

  • 这样的问题如何获得 3 票赞成... 你是如何修改 controller.js 代码的? 正如@brianliu 下面所说,你 必须处理 JavaScript 的异步特性。您无法绘制尚未拥有的数据。

标签: javascript angularjs asynchronous d3.js


【解决方案1】:

$http.get 是异步的,如果你在 donut-chart.directive 中的 console.log('scope.data', scope.data); 将是未定义的,因为承诺尚未解决。

我建议你可以添加数据依赖到$routeProvider,以确保在路由更改之前获取所有数据

.when('/edit', {
  controller: 'MainCtrl',
  templateUrl: 'edit.html',
  resolve: function() {
      // your $http get data and return promise in this function
  }
}

【讨论】:

  • 感谢@Brian Liu 的回答,但我无法在我的场景中使用此选项
  • 不用担心,只要您找到适合您项目的解决方案。
猜你喜欢
  • 2018-01-11
  • 2015-10-22
  • 1970-01-01
  • 2016-01-29
  • 1970-01-01
  • 1970-01-01
  • 2015-06-24
  • 2015-02-01
  • 1970-01-01
相关资源
最近更新 更多