2016-01-04 54 views
1

如何在當前版本的Ember中綁定input助手的data-屬性?在輸入助手中綁定數據屬性

DEBUG: ------------------------------- 
DEBUG: Ember    : 2.2.0 
DEBUG: Ember Data  : 2.2.1 
DEBUG: jQuery   : 1.11.3 
DEBUG: Ember Simple Auth : 1.0.0 
DEBUG: ------------------------------- 

這是我的助手,但data-屬性都將被丟棄...

{{input id="price-slider" name="title" type="text" value=model.price data-slider-id="ex1Slider" data-slider-min=model.minPrice data-slider-max=model.maxPrice data-slider-step=model.priceStep data-slider-value=model.price}} 
+0

爲什麼你需要的數據屬性? – Bek

+0

你可以在這種情況下使用常規括號(尖括號)我猜 – Bek

+0

@Bek:我只是需要它們,我不知道,讓我們說讓我的滑塊庫獲取初始化滑塊組件所需的數據參數,或其他任何事情,真的,沒關係。我只需要他們。 – dangonfast

回答

1

默認情況下,數據的屬性不會傳播。您可以重新打開TextField組件以傳播您所需的所有數據屬性,但請檢查官方指南的this section

在可替代的,如果你希望所有的數據屬性被自動繼承您可以重新打開或子類的TextField組件,使其傳播的所有數據默認屬性:

Ember.TextField.extend({ 
    init: function() { 
    this._super(); 
    var self = this; 

    Object.keys(this).forEach(function(key) { 
     if (key.substr(0, 5) === 'data-') { 
     self.get('attributeBindings').pushObject(key); 
     } 
    }); 
    } 
}); 
+0

謝謝,抱歉,但那只是瘋狂。 Ember使用帶ES6語法的ember-cli,並且指南中的語法似乎是舊的全局語法。我如何在我的ember-cli項目中重新打開Textfield?我應該放置哪個文件,目錄? – dangonfast

+0

更重要的是:數據屬性爲什麼不傳播?根本問題是什麼? – dangonfast

+0

下面是如何重新打開內置類:http://stackoverflow.com/questions/27154886/ember-cli-where-to-reopen-framework-classes/27155720#27155720 – GJK

1

你可以使用常規的支架投入證明綁定在你的控制器工作twiddle(不知道,但數據ATTRS不應該與他們丟失) 在你的模板

<input onkeyup={{action 'inputChange' value='target.value'}}> 
<input value={{inputVal}}> 

export default Ember.Controller.extend({ 
    inputVal: 'hello', 
    actions: { 
    inputChange(val) { 
     this.set('inputVal', val); 
    } 
    } 
}); 

順便說一句,如果你想滑塊功能已經看清楚emberx-sliderember-range-slider

+0

謝謝,我會試試。是否有任何描述將這個過渡到在ember文檔中的常規括號輸入? – dangonfast