gpt4 book ai didi

ember.js - ember 组件中的多属性绑定(bind)

转载 作者:行者123 更新时间:2023-12-02 06:04:48 25 4
gpt4 key购买 nike

在我问我的问题之前,我遇到了属性绑定(bind)问题并解决了这个问题 link知道我的组件是这样的:

OlapApp.ItemRowsComponent = Ember.Component.extend({
tagName: 'li',
classNameBindings: ['currentItem.isMeasure:d_measure:d_dimension'],
attributeBindings:['data-id'],
'data-id':Ember.computed.oneWay('currentItem.id'),
actions: {
removeItem: function(item) {
item.deleteRecord();
item.save();
},
didClick: function(item) {
if (item.get('isMeasure')) {
item.deleteRecord();
item.save();
}
}
}
});

好的,我想添加另一个与 currentItem.isMeasure 绑定(bind)的属性.在此之前我使用 currentItem.isMeasure用于此组件中的类绑定(bind)并正常工作,但是当我使用此代码时:
attributeBindings:['data-id','data-isMeasure'],
'data-id':Ember.computed.oneWay('currentItem.id'),
'data-isMeasure':Ember.computed.oneWay('currentItem.isMeasure'),

和 ember 像这样创建一个 li 元素:
<li id="ember745" class="ember-view d_measure" data-id="03lp9" data-ismeasure="data-isMeasure">
data-ismeausre必须为真或假而不是 data-isMeasure .所以我用另一种方式:
 attributeBindings:['data-id','io:data-isMeasure'],
'data-id':Ember.computed.oneWay('currentItem.id'),
io:function(){
console.log(this.get('currentItem').get('isMeasure')); //its return true
return this.get('currentItem').get('isMeasure');
}.property(),

但返回的值仍然


但是当我使用 console.log 时它返回 true 但插入 data-isMeasure而不是 true在元素中。

最佳答案

我用一个技巧解决了我的问题。在我的申请中currentItem.isMeasuretruetrue是 bool 值,所以 ember 在元素中插入属性的名称。所以我试试这段代码:

attributeBindings:['data-id','io:data-isMeasure'],
'data-id':Ember.computed.oneWay('currentItem.id'),
io:function(){
var val = this.get('currentItem.isMeasure');
if(val==true)return "true";
return "false";
}.property('currentItem.isMeasure'),

现在一切正常,我的元素是:
<li id="ember745" class="ember-view d_measure" data-id="acafd" data-ismeasure="true">

并且知道我可以考虑用更好的代码来清理这个技巧。

关于ember.js - ember 组件中的多属性绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18958656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com