首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我想要更改directive的模板的值

我想要更改directive的模板的值
EN

Stack Overflow用户
提问于 2015-11-12 05:57:25
回答 1查看 45关注 0票数 0

我这样定义一个指令:

代码语言:javascript
复制
module.directive("jump", function(html){
var text = html.getHtml();
return{
    scope:{},
    restrict:"AE",
    template: text,
}
});

我有一个存储html的服务,如下所示:

代码语言:javascript
复制
module.factory('html',function(){
var html = "";
return {
    setHtml: function(text){
        html = text;
    },
    getHtml: function(){
        return html;
    }
}
})

我想在进入文章页面时修改模板值,因为每篇文章的细节都不一样,我只能从API获取,就像这样

代码语言:javascript
复制
<p><a href="#" ng-click="open(\'http://www.facebook.com\')"facebook</a></p>

我想为每一篇文章定义一个指令,以显示文章的细节。但是现在,当我进入一个文章页面时,指令的模板已经定义,如果我想看到其他文章,模板值就是第一篇文章的详细信息,我想知道如何更改它。

EN

回答 1

Stack Overflow用户

发布于 2015-11-12 06:46:58

“注意: Angular中的所有服务都是单例的。”

如果您需要让指令的每个实例的html都不同,则不能使用将其限制为单个实例的单例。

为什么不直接在指令中定义模板呢?通过这种方式,这是一种更清晰的模式。如下所示:

正在使用的指令:

代码语言:javascript
复制
<div ng-repeat="foo in dataFromApiThatYouGetFirst">
  <jump url="{{foo.url}}" title="{{foo.title}}"></jump>
</div>

指令:

代码语言:javascript
复制
restrict: 'E',
template: '<p><a href="#" ng-click="open(vm.url)">{{vm.title}}</a></p>',
replace: true,
scope: {
  url: '=?',
  title: '=?'
},
controllerAs: 'vm',
bindToController: true,
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33660612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档