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

时间:2015-07-22 16:16:26

标签: ember.js ember-cli

此问题类似于未答复的Extending link-to

我尝试扩展{{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;

渲染输出为:

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;

});

当它被调用并且它的渲染输出时:

// 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>

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

感谢。

3 个答案:

答案 0 :(得分:7)

对于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']
    });
    
  3. 在app.js中
  4. 导入它

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

  5. 这就是全部。对于ember-cli&lt; 2.0用LinkView替换LinkComponent

答案 1 :(得分:0)

所以它可能不是最正确的答案,但我偶然发现,如果你将这样的任何类型的扩展或覆盖放入route/applaction.js的{​​{1}}钩子中,它可以完美地运行:

beforemodel

答案 2 :(得分:0)

档案: dates A a datetime1 datetime2 b datetime3 ...

如果这可以帮助其他人获得Ember 2.x的通用数据 - *。

df = pd.DataFrame.from_dict({(i, j): d[i][j]
                                     for i in d.keys()
                                     for j in d[i].keys()},
                                     orient='index')