我有一个按层次顺序排列的模型数据。我使用组件来渲染模型数据,使用另一个组件将数据添加到模型中。我遇到的问题是,当我在根级别添加模型数据时,它会正确呈现,但是当我尝试将模型数据添加到一个深度时,视图不会更新。
这是一个演示我的问题的简单示例:http://jsbin.com/UhIdoxOR/1/
因此,如果我在根级别问题之后添加问题,则视图会更新。但是,如果我尝试在子级别添加问题,则视图不会更新。 当模型更改时,我该怎么做才能使适当的组件重新渲染?
谢谢, DEE
答案 0 :(得分:1)
在您的QuestionController
中,hasChildren
和childQuestions
计算属性与property('questions')
一致,但这不正确,因为hasChildren
取决于childQuestions.length
由于过滤器而导致childQuestion
questions.@each.parentQuestionId
。所以你需要更新到以下内容:
App.QuestionController = Ember.ObjectController.extend({
needs: 'questions',
questions: Ember.computed.alias("controllers.questions"),
hasChildren: function () {
return (this.get('childQuestions.length') > 0);
}.property('childQuestions.length'),
childQuestions: function () {
return (this.get('questions').filterBy('parentQuestionId', parseInt(this.get('id'))));
}.property('questions.@each.parentQuestionId')
});
这是您更新的jsbin http://jsbin.com/UhIdoxOR/3/edit