使用$ sce.trustAsResourceUrl

时间:2016-02-09 12:44:47

标签: html angularjs

我正在尝试使用指令,但我收到错误。我发现我应该在$ sce.trustAsResourceUrl周围包装模板网址,但是,我该如何正确地做到这一点。

angular.module('myApp', [])
  .directive('myPhotos', function() {
    return {
      restrict: 'E',
      transclude: true,
      scope: {},
      controller: function($scope) {
        var photos = $scope.photos = []; 
        $scope.select = function(photo) {
          angular.forEach(photos, function(photo) {
            photo.selected = false;
          });
          photo.selected = true;
        };
        this.addPhoto = function(photo) {
          photos.push(photo);
        };
      },
      templateUrl: 'file:///home/mihaly/meanbook/CH24/my_photos.html'
    };
  })
  .directive('myPhoto', function() {
    return {
      require: '^myPhotos',
      restrict: 'E',
      transclude: true,
      scope: { title: '@'},
      link: function(scope, elem, attrs, photosControl) {
        photosControl.addPhoto(scope);
      },
      template: '<div ng-show="selected" ng-transclude></div>'
    };
  });

1 个答案:

答案 0 :(得分:0)

您不需要使用$ sce在指令中使用templateUrl,只需使用html模板的路径而不是文件://

templateUrl: '../my_photos.html'