javascript - 如何在 Angular 1.5 组件中等待绑定(bind)(没有 $scope.$watch)

标签 javascript angularjs components

我正在编写一个 Angular 1.5 指令,我遇到了一个令人讨厌的问题,试图在绑定(bind)数据存在之前对其进行操作。

这是我的代码:

app.component('formSelector', {
  bindings: {
    forms: '='
  },
  controller: function(FormSvc) {

    var ctrl = this
    this.favorites = []

    FormSvc.GetFavorites()
    .then(function(results) {
    ctrl.favorites = results
    for (var i = 0; i < ctrl.favorites.length; i++) {
      for (var j = 0; j < ctrl.forms.length; j++) {
          if (ctrl.favorites[i].id == ctrl.newForms[j].id) ctrl.forms[j].favorite = true
      }
     }
    })
}
...

如您所见,我正在调用 AJAX 来获取收藏夹,然后根据绑定(bind)的表单列表检查它。

问题是,甚至在填充绑定(bind)之前, promise 就已经实现了……所以当我运行循环时,ctrl.forms 仍然是未定义的!

如果不使用 $scope.$watch(这是 1.5 组件的一部分),我该如何等待绑定(bind)完成?

最佳答案

我有一个类似的问题,我这样做是为了避免在我要发送的值准备好之前调用该组件:

<form-selector ng-if="asyncValue" forms="asyncValue" ></form-selector>

关于javascript - 如何在 Angular 1.5 组件中等待绑定(bind)(没有 $scope.$watch),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35639435/

相关文章:

angularjs - 如何让进度条工作?

javascript - 从 Angular JS 应用程序打开谷歌地图应用程序

java - 在 Vaadin 中选择组件

delphi - 在 Delphi 7 中调整窗体大小的最佳免费方法是什么?

Javascript 实例上下文原型(prototype)

Heroku 上的 Javascript Assets 编译错误

javascript - 我应该将所有 JavaScript 源代码复制到一个文件中吗?

javascript - Angular 1 中的响应式源图像,好还是坏?

javascript - 使用javascript加载knockoutjs组件

javascript - 为什么我的像素操作脚本这么慢?