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'),
});
我正在尝试在 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'),
});