我的网站使用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文件。这有效,但我应该注意这种方法有什么警告吗?有没有更好的方法来实现相同的结果?感谢。