AngularJS $范围内的竞争条件

时间:2014-10-30 19:44:10

标签: json angularjs

我的网站使用Angular的客户端路由。该项目的一个要求是该站点的所有正文文本都是从一个扁平的json文件提供的。对于大多数网站来说,这不是问题。主索引文件命中IndexController并以下列方式获取文件:

TextFactory.get.query(function (response) {
    $scope.textDump= response;
});

这会在初始页面加载时获取站点的文本,然后当浏览器在站点周围路由时,它不必再次进行$ request请求以继续使用该文本。在其中一个页面(隐私策略)上,期望能够直接在json文件中插入html格式。为了支持这一点,我正在执行以下服务控制器条款:

app.controller('TermsOfServiceController', ['$scope', '$sce', function ($scope, $sce) {
    $scope.$watch("textDump.tos", function (new_val, old_val) {
       if (angular.isDefined(new_val)) {
          $scope.pageContent = $sce.trustAsHtml($scope.textDump.tos);
       }
    });
}]);

我必须这样做,因为有一个竞争条件,当TermsOfServiceController试图使用它时,textDump.tos还没有从CDN收到json文件。这有效,但我应该注意这种方法有什么警告吗?有没有更好的方法来实现相同的结果?感谢。

0 个答案:

没有答案