[英]Emberjs: Two-Way Data-binding between Number Inputs
我正在尋找Ember中的數據綁定,我想綁定兩個input type="number"
元素,以便更改任何一個元素將更新另一個元素。 這是JSBin 。
我想要的是以下內容:
Biker = DS.Model.extend(
bikes: (->
@get("tires") / 2
).property("tires")
tires: (->
@get("bikes") * 2
).property("bikes")
)
但這會導致以下堆棧溢出:
未捕獲RangeError:最大調用堆棧大小超出ember.js:1 Ember.assert ember.js:1 get ember.js:2167 Ember.Observable.Ember.Mixin.create.get ember.js:12425(匿名函數)biker.js :32 ComputedPropertyPrototype.get ember.js:4951 get ember.js:2176 Ember.Observable.Ember.Mixin.create.get ember.js:12425(匿名函數)biker.js:29 ComputedPropertyPrototype.get
使用input
元素實現雙向絕對數據綁定的最佳方法是什么?
注意: 我問過類似的東西,但是有點角度 。
而不是編寫循環代碼,只有一個屬性觀看另一個。 Ember的計算屬性允許您為此目的定義setter和getter函數:
App.Biker = DS.Model.extend({
bikes: DS.attr('number'),
tires: function(key, value) {
// Setter
// Says: if we did this.set('tires', something);
if (arguments.length > 1) {
var bikes = value != 0 ? value / 2 : 0; // Incase zero bikes
this.set('bikes', bikes);
}
// Getter
return this.get('bikes') * 2;
}.property('bikes')
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.