Ember 第一个应用程序无法识别 xml2json 中的 xmlcode
Ember first application wont recognize xmlcode inside xml2json
抱歉,如果这个问题可能是因为我在 node/npm 领域缺乏知识。
我创建了我的第一个 ember 网络应用程序
我用 npn 和 bower 安装了 xml2json 并添加了
app.import('node_module/xml2json/xml2json.js')
在 ember_build_cli.js 之前 return app.toTree();
我通过生成器添加了自定义路由,并添加了一个应该读取 xml 的函数,将其转换为 json 并输出数据
/myapp/app/routes/getxml.js
import Ember from 'ember';
export default Ember.Route.extend({
model() {
return Ember.$.ajax({
url: "data/test.xml",
dataType:"xml"
}).done(function(xmlData){
var jsonData = xml2json.xml_to_object(xmlData);
return jsonData;
});
}
});
/myapp/app/data/test.xml
<ART>
<CD>
<ID>1</ID>
</CD>
<CD>
<ID>2</ID>
</CD>
</ART>
我有一个问题 xml2json 不工作。因为我能够在 Firefox 中安装 Ember Inspector,所以我最终遇到了这个错误:
TypeError: xmlcode.replace is not a function
据我了解 xml2json 已正确导入,但 Ember/Firefox 不理解 xml2[=68= 中的代码 xmlcode.replace ]图书馆。
我是不是在安装应用程序时遗漏了什么或者我做错了什么?
编辑:
从头开始创建应用程序后
并且仅通过 bower install 安装 xml2json
添加
app.import('bower_components/xml2json/xml2json.js')
在/myapp/ember-cli-build.js
当 运行 ember 服务器我看到
routes/getxml.js: line 9, col 22, 'xml2json' is not defined
但在 Firefox 开发控制台中我看到:
XML Parsing Error: syntax error Location: http://localhost:4200/getxml
Line Number 1, Column 1:
仅此而已。
现在我不确定 xml2json 是否已加载(因为存在 XML 解析错误)或未加载 ember cli 状态未定义。
编辑 3:
/myapp/app/routes/getxml.js
import Ember from 'ember';
export default Ember.Route.extend({
model() {
return Ember.$.ajax({
url: "http://127.0.0.1/GetXML.xml",
dataType: 'xml'
}).done(function(xmlData){
var jsonData = xml2json.xml_to_object(JSON.stringify(xmlData));
console.log('result', jsonData);
return jsonData;
}).fail(function(error){
console.log('error ', error);
});
}
});
在 Firefox 控制台内的控制台中将结果打印为未定义。
app.import('node_module/xml2json/xml2json.js')
app.import
仅适用于 vendor
和 bower_components
文件。不适用于节点模块。
I install xml2json with npn and bower and added
为模块选择 NPM 或 Bower,但不能同时选择两者。
如果您选择 Bower 安装,则 bower install xml2json
并包括 app.import('bower_components/xml2json/xml2json.js')
如果你选择 npm 然后按照这个步骤,
需要安装 browserify,然后安装所需的 npm 模块。
npm install ember-browserify --save-dev
然后
npm install xml2json --save-dev
。您需要将其导入文件中您想要访问的任何地方
import xml2json from 'npm:xml2json';
url: "http://127.0.0.1:8080/GetXML"
确保此端点返回 xml 响应。
xml2json.xml_to_object(xmlData);
我看到 toJson
和 toXml
用于转换而不是 xml_to_object
抱歉,如果这个问题可能是因为我在 node/npm 领域缺乏知识。
我创建了我的第一个 ember 网络应用程序
我用 npn 和 bower 安装了 xml2json 并添加了
app.import('node_module/xml2json/xml2json.js')
在 ember_build_cli.js 之前 return app.toTree();
我通过生成器添加了自定义路由,并添加了一个应该读取 xml 的函数,将其转换为 json 并输出数据
/myapp/app/routes/getxml.js
import Ember from 'ember';
export default Ember.Route.extend({
model() {
return Ember.$.ajax({
url: "data/test.xml",
dataType:"xml"
}).done(function(xmlData){
var jsonData = xml2json.xml_to_object(xmlData);
return jsonData;
});
}
});
/myapp/app/data/test.xml
<ART>
<CD>
<ID>1</ID>
</CD>
<CD>
<ID>2</ID>
</CD>
</ART>
我有一个问题 xml2json 不工作。因为我能够在 Firefox 中安装 Ember Inspector,所以我最终遇到了这个错误:
TypeError: xmlcode.replace is not a function
据我了解 xml2json 已正确导入,但 Ember/Firefox 不理解 xml2[=68= 中的代码 xmlcode.replace ]图书馆。
我是不是在安装应用程序时遗漏了什么或者我做错了什么?
编辑:
从头开始创建应用程序后 并且仅通过 bower install 安装 xml2json 添加
app.import('bower_components/xml2json/xml2json.js')
在/myapp/ember-cli-build.js 当 运行 ember 服务器我看到
routes/getxml.js: line 9, col 22, 'xml2json' is not defined
但在 Firefox 开发控制台中我看到:
XML Parsing Error: syntax error Location: http://localhost:4200/getxml Line Number 1, Column 1:
仅此而已。 现在我不确定 xml2json 是否已加载(因为存在 XML 解析错误)或未加载 ember cli 状态未定义。
编辑 3:
/myapp/app/routes/getxml.js
import Ember from 'ember';
export default Ember.Route.extend({
model() {
return Ember.$.ajax({
url: "http://127.0.0.1/GetXML.xml",
dataType: 'xml'
}).done(function(xmlData){
var jsonData = xml2json.xml_to_object(JSON.stringify(xmlData));
console.log('result', jsonData);
return jsonData;
}).fail(function(error){
console.log('error ', error);
});
}
});
在 Firefox 控制台内的控制台中将结果打印为未定义。
app.import('node_module/xml2json/xml2json.js')
app.import
仅适用于 vendor
和 bower_components
文件。不适用于节点模块。
I install xml2json with npn and bower and added
为模块选择 NPM 或 Bower,但不能同时选择两者。
如果您选择 Bower 安装,则
bower install xml2json
并包括app.import('bower_components/xml2json/xml2json.js')
如果你选择 npm 然后按照这个步骤, 需要安装 browserify,然后安装所需的 npm 模块。
npm install ember-browserify --save-dev
然后npm install xml2json --save-dev
。您需要将其导入文件中您想要访问的任何地方import xml2json from 'npm:xml2json';
url: "http://127.0.0.1:8080/GetXML"
确保此端点返回 xml 响应。
xml2json.xml_to_object(xmlData);
我看到 toJson
和 toXml
用于转换而不是 xml_to_object