我正在学习最近几周的ember js,并构建一个应用程序来学习它。我处于这样一种情况,我必须构建一个动态形式,它将绑定到ember模型。 (这个问题最简单的例子可能是嵌套表单,我们可以点击添加更多链接/按钮来动态添加表单,并为它们添加值。)
但对我而言,我正在建立类似网站的调查,我们可以选择很多选项,用户可以从可用选项中选择一个选项:
到目前为止我做了什么?
readAnswer: Ember.computed(function() {
return this.get('store').query('answer', { filter:
{
question_id: this.get('question.id'),
submission_id: this.get('submission.id')
}
})
}),
buildAnswer: Ember.computed(function() {
this.get('store').createRecord('answer', {
question: this.get('question'),
submission: this.get('submission')
})
}),
answer: Ember.computed(function() {
const ans = this.get('readAnswer');
console.log(`question_id: ${this.get('question.id')}, submission_id: ${this.get('submission.id')}`);
if(Ember.isEmpty(ans)) {
return this.get('buildAnswer');
} else {
return ans;
}
})
answer.hbs
<div class="row col-sm-12">
<div class="form-group">
<label>{{model.title}}</label>
<p>
{{input type="text" value=answer.field01 class="form-control" placeholder="width"}}
</p>
<p>
{{input type="text" value=answer.field02 class="form-control" placeholder="depth"}}
</p>
</div>
</div>
注意这里的answer.hbs是一个组件,它们是从父路由递归调用(循环)。因此,对于2个问题,我们可以有4个文本框,每个问题有2个文本框,第一个文本框用于answer.field01,第二个文本框用于answer.field02
假设我有2个问题,到目前为止,我可以看到2个答案在ember商店中构建,如果它们尚未存在于数据库中,那么,我可以看到4个文本框在视图中生成。但他们没有约束力。意思是,如果我能够对文本框进行评估,那么在余烬商店中就没有任何反应。
预期结果
当我在文本框中输入答案时,它应该与answer.fieldxx正确绑定。
答案 0 :(得分:0)
我将这些代码从ds[dataClassName].query("externalID == :1","a1");
提取到computed property
函数,现在一切正常:
init()