我是Ember.js的新手,我无法将我的应用程序连接到后端数据。
我目前正在使用ember数据v.2.1,ember v.2.1,ember inspector v.1.9.3
我们正在升级现有应用,我们希望将ember用作前端框架。该应用程序现在是基于Java的,并在前面使用xsl。
我需要做的是通过HTML请求与ember连接到现有的后端,后端返回XML并将其转换为json,以便我可以在ember中使用它。我试着效仿这个例子:https://bendyworks.com/old-new-soap-ember-js/没有任何运气。
使用检查员我可以看到我的模型,但我无法加载其中的任何数据。
我的模型看起来像这样:
// app/models/get-menu.js
import DS from 'ember-data';
export default DS.Model.extend({
description: DS.attr('string'),
url: DS.attr('string')
});
我有一个适配器:
//adapters/menu.js
import DS from 'ember-data';
export default DS.RESTAdapter.extend({
headers: {
'Content-Type': 'text/xml;charset=UTF-8'
},
findAll: function() {
return this.ajax('LinkForHTTPRequest','POST');
},
ajaxOptions: function(url) {
// pretend to be a 'GET' to avoid certain nastiness in default impl
var hash = DS.RESTAdapter.prototype.ajaxOptions.call(this, url);
hash.type = 'GET';
hash.dataType = 'xml';
return hash;
}
});
我有一个序列化器:
import DS from 'ember-data';
import Ember from 'ember';
export default DS.JSONSerializer.extend({
extractArray: function(store, xmlDoc) {
var $ = Ember.$;
var xml = $(xmlDoc).find('TMSMENUS').text();
var innerXml = $($.parseXML(xml)).find('MENUS');
return innerXml.map(function(idx, el) {
return {
id: idx,
name: $(el).find('description').text(),
url: $(el).find('url').text(),
};
}).get();
}
});