5

我有这样的组件,想在上面设置一些属性:

OlapApp.ItemRowsComponent = Ember.Component.extend({
tagName: 'li',
classNameBindings: ['currentItem.isMeasure:d_measure:d_dimension'],
didInsertElement: function() {
    this.$().draggable({

    });
},
actions: {
    removeItem: function(item) {
        item.deleteRecord();
        item.save();
    },
    didClick: function(item) {
        if (item.get('isMeasure')) {
            item.deleteRecord();
            item.save();
        }
    }
}
});

我这样称呼这个组件:

{{#each item in getRowItem}}
 {{item-rows currentItem=item}}
{{/each}}

item 有一个 id 属性item.id,现在我想将此 id 设置为组件的 data-id 以创建这样的元素:

<li data-id='id of item'>Some text</li>
4

3 回答 3

5

你的方法真的有效吗?我怀疑它不应该那样工作,而应该是:

OlapApp.ItemRowsComponent = Ember.Component.extend({
  attributeBindings:["data-id"],
  "data-id" : Ember.computed.oneWay("currentItem.id")
  // and the rest of your code ...
});

一点额外的评论:查看我关于如何正确执行 jquery 逻辑的博客文章:http: //mavilein.github.io/javascript/2013/08/01/Ember-JS-After-Render-Event/

于 2013-09-23T08:04:50.410 回答
3

您实际上可以在不引入额外计算属性的情况下做到这一点。

attributeBindings:['currentItem.id:data-id']
于 2015-09-11T00:22:01.140 回答
2

在搜索并尝试某种方式后,我找到了。我用它来解决我的问题:

attributeBindings:['getId:data-id'],
getId:function(){return this.get('currentItem.id')}.property(),
于 2013-09-23T07:25:06.043 回答