保留承诺后,在ng-include模板内更新变量

时间:2014-12-17 11:10:11

标签: angularjs angular-promise angularjs-ng-include angular-http

我有一个有趣的难题。

在我的应用中,我使用的是递归<script>,我的主页通过ng-include引用它:

<div ng-include="'theTemplate.html'" onload="one=features.items.one"></div>

features.items.one的数据是使用$http通过外部API加载的,并在保留$http承诺时设置。

问题是,保留承诺之前加载ng-include,当承诺完成时,脚本中的{{one}} INSIDE不会更新(因为{ {1}}创建一个新的范围)

如何在承诺完成时让脚本中的变量更新?

2 个答案:

答案 0 :(得分:2)

扩展我的评论:

<div ng-if="your condition">
<div ng-include="'theTemplate.html'" onload="one=features.items.one"></div>
</div>

答案 1 :(得分:0)

使用控制器,并考虑在适当的时候重构服务

<div ng-include="'theTemplate.html'" ng-controller="myCtrl"></div>

然后添加一个控制器

xxx.controller('myCtrl', function($scope, Features) {
  $http request.then(function(data) {
    $scope.one = data.items.one;
  })
})