角度过滤器未知提供者:trustedProvider< - trusted< - DashCtrl

时间:2016-08-01 04:30:34

标签: angularjs

我正在尝试实施此过滤器

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中设置应用的位置,但似乎无法让它显示出来。我出错的任何想法?

2 个答案:

答案 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>

Sample Application

答案 1 :(得分:1)

获取此错误意味着您正在尝试将“受信任”注入您的控制器。

事实上你不需要这样做。过滤器无需注射即可使用。

您需要做的就是像调用控制器一样调用.filter

相关问题