Ember.js 不会自动绑定模型 REST 更改
Ember.js does not auto bind model RESTful changes
如果我错了,请纠正我,但我认为余烬应该大部分模型 - 为你查看绑定?当您必须手动跟踪模型更改并相应地更新/刷新视图时,会出现什么情况?
我正在使用的应用程序具有与之关联的嵌套路由和模型。
App.Router.map(function() {
this.resource('exams', {path: "/exams"}, function() {
this.resource('exam', {path: ":exam_id"}, function(){
this.resource('questions', {path: "/questions"}, function() {
this.route("question", {path: ":question_id" });
this.route("new");
})
})
});
});
一切正常,我可以独立于其余服务器获得考试和问题。
对于每个模型,我都有适当的Ember.ArrayController
和Ember.ObjectController
来处理视图中的列表和单个模型项。基本上对于这两种模型,我处理事情的方式是相同的,除了一个嵌套在另一个模型中的事实。另一个区别是,为了显示嵌套的路由数据,我使用了另一个 {{outlet}} - 第一个模板内的那个。
现在的问题是,与视图绑定的顶级模型由 Ember 自动处理,没有任何特殊的观察者、绑定等 - 例如,当我添加新项目时,它会被保存并刷新列表视图以反映更改,或者当项目被删除时,它会自动从视图中删除。"它只是工作(c)"
另一方面,对于第二个模型(问题),我能够重现所有 crud 行为并且工作正常,但 UI 不会自动更新以反映更改。
例如,我在添加新条目时不得不这样做(有问题的行有注释):
App.QuestionsController = Ember.ArrayController.extend({
needs: ['exam'],
actions: {
create: function () {
var exam_id = this.get('controllers.exam.id')
var title = this.get('newQuestion');
if (!title.trim()) { return; }
var item = this.store.createRecord('question', {
title: title,
exam_id: exam_id
});
item.save();
this.set('newQuestion', '');
this.get('content').pushObject(item); // <-- this somehow important to update the UI
}
}
});
而它是为我处理的(考试模型)
我做错了什么?如何让 Ember.js 跟踪和绑定模型并为我更改 UI?
this.get('content').pushObject(item);
您将新问题推送到问题控制器阵列。我认为最好将新问题直接推送到考试has_many关系中。
exam = this.modelFor('exam');
exam.get('questions').pushObject(item);
相关文章:
- 在VanillaJS中模拟模型双向数据绑定
- 有没有比在app.js上绑定模块名称更好的方法来动态加载视图模型和视图以显示模态
- Backbone.js将模型绑定到视图时出错
- Angularjs无法将单选按钮与嵌套范围内的模型绑定
- 当显式定义控制器参数时,默认模型绑定器会发生异常
- Ember.js:通过绑定/模型查找DOM元素
- AngularJS绑定模型以选择更新输入数字字段,最小值为最大值
- 淘汰MVC,绑定模型&将对象添加到模型中
- 从ajax中为传递为null的日期值绑定模型
- Ember.js 不会自动绑定模型 REST 更改
- 骨干JS,绑定模型查看
- 如何在角度指令中绑定模型
- Ember.js绑定模型存储在数组中
- 在javascript函数中绑定模型并将其传递给控制器
- 当浏览器填充表单时,AngularJS没有绑定模型
- Angularjs:当模型改变时,单选按钮检查状态绑定模型值失败
- 绑定模型在EmberJS中变为视图
- angularjs - ng-file-upload不绑定模型到动态创建的HTML表单
- 剑道自动完成不会绑定模型
- Emberjs:正确绑定模型/控制器/视图与夹具数据