我这样定义一个指令:
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>我想为每一篇文章定义一个指令,以显示文章的细节。但是现在,当我进入一个文章页面时,指令的模板已经定义,如果我想看到其他文章,模板值就是第一篇文章的详细信息,我想知道如何更改它。
发布于 2015-11-12 06:46:58
“注意: Angular中的所有服务都是单例的。”
如果您需要让指令的每个实例的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,https://stackoverflow.com/questions/33660612
复制相似问题