我正在尝试实施此过滤器
app.filter('trusted', ['$sce', function ($sce) {
return function(url) {
return $sce.trustAsResourceUrl(url);
};
<video ng-src="{{videoFile.path | trusted}}" controls="controls" autoplay> </video>
我在这里找到了 External resource not being loaded by AngularJs
要播放视频,因为我收到此错误:
错误:[$sce:insecurl] Blocked loading resource from url not allowed by $sceDelegate policy.
我无法显示过滤器,我收到此错误:
[$ injector:unpr]未知提供者:trustedProvider&lt; - trusted&lt; - DashCtrl
我尝试在几个地方添加过滤器代码,例如在index.js中设置应用的位置,但似乎无法让它显示出来。我出错的任何想法?
答案 0 :(得分:2)
像这样改变,
<强>控制器:强>
routerApp.controller('trusted', ['$scope','$sce', function($scope,$sce) {
$scope.trustSrc = function(src) {
return $sce.trustAsResourceUrl(src);
}
}
]);
<强> HTML:强>
<video ng-src="{{trustSrc(videoFile.path)}}" controls="controls" autoplay> </video>
答案 1 :(得分:1)
获取此错误意味着您正在尝试将“受信任”注入您的控制器。
事实上你不需要这样做。过滤器无需注射即可使用。
您需要做的就是像调用控制器一样调用.filter
。