编辑: 问题是由于尝试使用 ng-repeat\ng-options 迭代函数的返回值,而不是使用 promise 将数据解析为常规对象。
代码:
$scope.layout.getPartialUriSafe = function(){
return $sceDelegate.getTrusted($sce.RESOURCE_URL, $scope.layout.getPartialUri());
}
$scope.layout.getPartialUri = function(){
var cat = $location.search().cat;
switch(cat){
case 'settings':
return 'partials/companySettings.html';
case 'scouters':
$scope.model.roleType = 'scouter';
$scope.layout.roleTitle = $filter('translate')('SCOUTERS');
return 'partials/roles.html';
case 'recruiters':
$scope.model.roleType = 'recruiter';
$scope.layout.roleTitle = $filter('translate')('RECRUITERS');
return 'partials/roles.html';
case 'social':
return 'partials/socialLinks.html';
case 'design':
return 'partials/companyDesign.html';
default:
return 'partials/companySettings.html';
}
}
HTML:
<div class="settingsInnerContainer">
<div data-ng-include data-src="layout.getPartialUriSafe()"></div>
</div>
上面的代码卡住了屏幕,没有错误。
尝试使用插值
'{{layout.getPartialUriSafe()}}'
但后来我得到了一个 Angular 解析器错误。
还尝试使用原始插值,但也不走运:
'{{layout.getPartialUriSafePrimitive}}'
layout.getPartialUriSafePrimitive - 包含带有部分 URI 的字符串。
预先感谢您提供的任何帮助,我已经尝试升级到 ng 1.2.x 一段时间了,到目前为止遇到了许多在 1.2.2 中已解决的问题,但这个特定问题仍然悬而未决。
最佳答案
有一个 API 更改(不幸的是小写字母)。检查 1.1.5 的文档$location.search()
和 latest - 1.2.x . (谜题:你能看出区别吗?)
search(search, paramValue)
在 1.1.5 中,search
参数是可选的,在 1.2.x 中不是!所以试试这个:
var cat = $location.search("cat");
或者,如果您不介意将依赖项添加到 $routeParams
(它不会引发函数调用,性能可能会更好 - 几纳秒 :-)
var cat = $routeParams.cat;
关于javascript - 在 DOM (html) 上下文中使用 Angular 作用域函数时出现的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20239229/