使用Ember-cli扩展{{link-to}}

JDi*_*522 1 ember.js ember-cli

这个问题类似于未答复的扩展链接.

我正在尝试扩展{{link-to}}帮助程序以输出其他属性绑定.但是,这些属性不会出现在我们的HTML中.继承人我们有:

//views/link-to.js (normally coffeescript)
import Ember from 'ember'

var LinkToView = Ember.LinkView.reopen({
  attributeBindings: ['data-toggle', 'data-placement', 'title']
});

export default LinkToView;
Run Code Online (Sandbox Code Playgroud)

渲染的输出是这样的:

define('app/views/link-to', ['exports', 'ember'], function (exports, Ember) {

  'use strict';

  var LinkToView;

  LinkToView = Ember['default'].LinkView.reopen({
    attributeBindings: ['data-toggle', 'data-placement', 'title']
  });

  exports['default'] = LinkToView;

});
Run Code Online (Sandbox Code Playgroud)

当它被调用及其渲染输出时:

// Any .hbs file
{{#link-to 'account' 
    class='header-link' 
    data-toggle='tooltip' 
    data-placement='right' 
    title='Account'
}}
    <span class="glyphicon glyphicon-cog" aria-hidden="true"></span>
{/link-to}}

// Rendered...
<a id="ember615" class="ember-view header-link" href="/account"     title="Account">             
    <span class="glyphicon glyphicon-cog" aria-hidden="true"></span>
</a>
Run Code Online (Sandbox Code Playgroud)

我们哪里出错了?我知道它与解析器或我们如何调用它有关.

谢谢.

Dim*_*nov 8

适用于Ember 2.0+

  1. 创建目录app /重新打开
  2. 创建文件app/reopens/link-component.js

    import Ember from 'ember'; 
    Ember.LinkComponent.reopen({
      attributeBindings: ['data-variation', 'data-offset', 'data-content','data-any']
    });
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在app.js中导入它

    import LinkComponent from './reopens/link-component';

就这样.对于ember-cli <2.0,将LinkComponent替换为LinkView