編集: この問題は、promise を使用してデータを通常のオブジェクトに解決する代わりに、ng-repeat \ ng-options を使用して関数の戻り値を反復しようとしたことが原因でした。
コード:
$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()}}'
しかし、角度パーサーエラーが発生しました。
また、プリミティブ補間を使用しようとしましたが、運もありません:
'{{layout.getPartialUriSafePrimitive}}'
layout.getPartialUriSafePrimitive - 部分的な URI を含む文字列が含まれています。
助けてくれてありがとう、私はしばらくの間 ng 1.2.x へのアップグレードを試みてきましたが、これまでのところ 1.2.2 で解決された多くの問題に遭遇しましたが、この特定の問題はまだ未解決のままです。