EmberJS:Questionnaire:bind 2 个具有相同值的复选框,其中一个为 Inverted

EmberJS: Questionnaire:bind 2 checkboxes to same value, one of them Inverted

我正在尝试在 EmberJS 中实现一个简单的问卷组件,其中包含 10 个不同的问题,其中每个附加问题都取决于之前问题的答案(最大深度为 6),并在回答该问题之后出现。所有这些问题都是是或否的问题。

我现在要的是2个checkboxes/buttons,一个代表是,一个代表不是。

我知道我可以通过将每个问题的 2 个计算属性绑定到复选框并相互设置来实现这一点(即使在那里我不太确定,因为相反的绑定,如何确定 none默认情况下这些都是真的,导致显示下一个问题),但我忍不住认为为这个用例拥有 20 个计算属性并不是做事的最佳方式

非常感谢任何更好、更清晰的解决此问题的想法!

构建一个问题组件。

App.CQuestionComponent = Ember.Component.extend({
  q: null,

  isYes: false,

  isNo: false,

  result: null,

  _yes: function() {
    var isYes = this.get('isYes');

    if ( isYes ) {
      this.removeObserver('isNo', this, '_no');
      this.set('isNo', ! isYes);
      this.addObserver('isNo', this, '_no');
      this.set('result', true);
    } else {
      this.set('result', null); 
    }
  }.observes('isYes'),

  _no: function() {
    var isNo = this.get('isNo');

    if ( isNo ) {
      this.removeObserver('isYes', this, '_yes');
      this.set('isYes', ! isNo);
      this.addObserver('isYes', this, '_yes');
      this.set('result', false);
    } else {
      this.set('result', null);
    }

  }.observes('isNo'),

});

http://emberjs.jsbin.com/sifewitahu/1/edit?html,js,output