簡體   English   中英

Emberjs:數字輸入之間的雙向數據綁定

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM