Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Emberjs:数字输入之间的双向数据绑定_Javascript_Ember.js_Ember Data - Fatal编程技术网

Javascript Emberjs:数字输入之间的双向数据绑定

Javascript Emberjs:数字输入之间的双向数据绑定,javascript,ember.js,ember-data,Javascript,Ember.js,Ember Data,我正在研究Ember中的数据绑定,我想绑定两个input type=“number”元素,以便更改其中一个元素将更新另一个元素 我想要的是: Biker = DS.Model.extend( bikes: (-> @get("tires") / 2 ).property("tires") tires: (-> @get("bikes") * 2 ).property("bikes") ) 但这将导致以下堆栈溢出: 未捕

我正在研究Ember中的数据绑定,我想绑定两个
input type=“number”
元素,以便更改其中一个元素将更新另一个元素

我想要的是:

Biker = DS.Model.extend(
    bikes: (->
        @get("tires") / 2
    ).property("tires")
    tires: (->
        @get("bikes") * 2
    ).property("bikes")
)
但这将导致以下堆栈溢出:

未捕获范围错误:超过了最大调用堆栈大小。js:1 Ember.assert Ember.js:1获取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

使用
输入
元素实现双向绝对数据绑定的最佳方法是什么


注意:.

不要编写循环代码,只使用其中一个属性来监视另一个属性。允许您为此目的定义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')
})

你没有调用模型,你只是将模型设置为一个随机的对象数组。相反,设置并在model方法中返回this.store.find('biker')。无论如何,我认为这不会改变模板中显示的属性,因为每个
输入
上的
valueBinding
绑定到控制器的
content
属性,而不是路由的模型。最好在控制器上设置计算属性,并对模型中的
自行车
轮胎
使用DS.attr('number')。。我在上面的评论中所说的部分内容是不必要的,但答案是一样的。如果你想让我解释JS Bin的任何部分,请告诉我。