首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在{{#linkTo}}帮助器<a>标记上设置自定义数据属性

在{{#linkTo}}帮助器<a>标记上设置自定义数据属性
EN

Stack Overflow用户
提问于 2013-08-23 18:07:46
回答 2查看 4.7K关注 0票数 19

如何在{{#linkTo}}帮助器上设置自定义data-属性?我想用这个:

代码语言:javascript
复制
{{#linkTo "foo" data-toggle="dropdown"}}foo{{/linkTo}}

结果应该是这样的:

代码语言:javascript
复制
<a id="ember323" class="ember-view active"  data-toggle="dropdown" href="#/foo/123">foo</a>

但看起来是这样的:

代码语言:javascript
复制
<a id="ember323" class="ember-view active"  href="#/foo/123">foo</a>

我该怎么做呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-23 18:36:51

一种可以做到这一点的方法是扩展Ember.LinkComponent以了解新属性:

代码语言:javascript
复制
Ember.LinkComponent.reopen({
  attributeBindings: ['data-toggle']
});

然后你可以在你的{{#link-to}}帮助器中使用它:

代码语言:javascript
复制
{{#link-to 'foo' data-toggle="dropdown"}}Foo{{/link-to}}

这将导致:

代码语言:javascript
复制
<a id="ember262" class="ember-view active" href="#/foo" data-toggle="dropdown">Foo</a>

由于attributeBindings是一个数组,您可以在其中放置可能需要的多个属性:

代码语言:javascript
复制
attributeBindings: ['data-toggle', 'foo', 'bar']

希望能有所帮助。

票数 29
EN

Stack Overflow用户

发布于 2013-08-23 19:05:27

@直觉

谢谢

你帮了很大的忙。有了这些信息,我尝试了一下LinkView,并找到了一个通用的解决方案:

代码语言:javascript
复制
Em.LinkView.reopen({
    init: function() {
        this._super();
        var self = this;
        Em.keys(this).forEach(function(key) {
            if (key.substr(0, 5) === 'data-') {
                self.get('attributeBindings').pushObject(key);
            }
        });
    }
});
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18400147

复制
相关文章

相似问题

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