我继承了一个基于Rails API构建的Ember.js应用程序。这最初运行如下:
Ember.VERSION : 1.0.0 ember.js
DEBUG: Handlebars.VERSION : 1.0.0 ember.js
DEBUG: jQuery.VERSION : 1.10.2
但这些已更新为以下内容:
Ember : 1.7.1+pre.f095a455 ember.js
DEBUG: Ember Data : 1.0.0-beta.10+canary.30d6bf849b ember.js
DEBUG: Handlebars : 1.3.0 ember.js
使用ember-rails gem。
我有一个绑定到UI元素的动作来创建一个新模型并将其插入到一行项目中的页面中。这适用于之前的旧应用程序,但不适用于新应用程序。
单击操作按钮时,将创建新模型,传递行对象和初始部分数据。仅供参考,这是在sections_controller.js文件中,而不是路径。
_createSection: function(row, new_section_data){
new_section_data.row = row;
new_section_data.width = this.getNewSectionWidth(row);
new_section_data.position = this.getNewSectionPosition(row);
var store = this.get('store');
var new_section = store.createRecord('section', new_section_data);
new_section.save();
new_section.one('didCreate', function(){
new_section.set('set_as_selected', true);
}.bind(this, new_section))
return new_section;
},
只要调用store.createRecord()方法,就会出现问题。 UI布局实际上删除了应该放置项目的行块元素,并且它不会返回或更新新插入的项目,它应该是。
我可以从Ember chrome插件中看到原始数据存储在商店中,但不一定是使用API发送到远程数据库。但主要问题是创建记录后会丢失UI。
我无法显示太多代码,但是有人知道为什么会发生这种情况吗? didCreate方法确实运行,但丢失UI是一个大问题。我对Ember来说还不够新,因此仅仅通过Ember数据之间的这些更改来更新遗留应用程序就显得有些棘手了。
非常感谢您提供任何帮助。