我定义了一个这样的指令:
module.directive("jump", function(html){
var text = html.getHtml();
return{
scope:{},
restrict:"AE",
template: text,
}
});
我有一个存储html的服务,如下所示:
module.factory('html',function(){
var html = "";
return {
setHtml: function(text){
html = text;
},
getHtml: function(){
return html;
}
}
})
我想在进入文章页面时更改模板值,因为每篇文章的细节都不同,我只能从API获取,就像
<p><a href="#" ng-click="open(\'http://www.facebook.com\')"facebook</a></p>
我想为每篇文章定义一个指令来显示文章的细节。 但是现在,当我进入一个文章页面时,定义了指令的模板,如果我想看到其他文章,模板值是第一篇文章的详细信息。我想知道如何更改它。
答案 0 :(得分:0)
如果您需要为指令的每个实例使html不同,则不能使用将其限制为单个实例的单例。
为什么不在指令中定义模板?这种方式更清晰。像这样:
正在使用的指令:
<div ng-repeat="foo in dataFromApiThatYouGetFirst">
<jump url="{{foo.url}}" title="{{foo.title}}"></jump>
</div>
指令:
restrict: 'E',
template: '<p><a href="#" ng-click="open(vm.url)">{{vm.title}}</a></p>',
replace: true,
scope: {
url: '=?',
title: '=?'
},
controllerAs: 'vm',
bindToController: true,