如何在查看angularjs之前确保范围变量更新和绑定

时间:2015-08-05 16:33:10

标签: javascript angularjs angularjs-scope

在我的代码中,有一个名为$ scope.detailsPresent的范围变量,它基本上只检查是否有数据并根据结果显示不同的页面。

当我执行console.log($ scope.detailsPresent)时,根据是否存在值为false的数据或者如果没有数据值应该为true,该值是正确的。

但是视图没有绑定值,所以在视图上值尚未更新,因此它没有显示正确的页面。如何确保在视图中更新值?我尝试$ scope。$ apply()但是我得到一个错误,所以无论如何都要这样做吗?

my_controller.js

<ion-view view-title="Case Status">
<ion-content>
    <div ng-if="detailsPresent.myVar">
      <ng-include src="template='no-listings'"></ng-include>
    </div>
    <div ng-if="!detailsPresent.myVar">
      <ng-include src="'templates/case-listings.html'"></ng-include>
    </div>
  </ion-content>
</ion-view>

my.html

{{1}}

我已经在这约6天了,但没有看到成功。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

这不是一个完整的答案,但我有一些建议。这可以更好地作为评论,但我还没有足够的声誉。

尝试将ng-if属性切换为ng-show属性。我意识到这会将所包含的元素留在DOM中,但如果性能没有受到严重影响,它可能对您有用。

此外,您在致电$scope.$apply()时收到错误的原因是因为您已经在调用$apply(),或者更确切地说是$applyAsync()

有关$ apply()

的详细信息,请参阅this answer