我正在尝试使用指令,但我收到错误。我发现我应该在$ 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>'
};
});
答案 0 :(得分:0)
您不需要使用$ sce在指令中使用templateUrl,只需使用html模板的路径而不是文件://
templateUrl: '../my_photos.html'