타사 사이트 데이터베이스 및 관리 콘솔에서 실행되는 프런트 엔드 웹 시스템을 구축하려고합니다. API는 GET 호출에 전적으로 의존하며 특정 URL을 대상으로 정보를 요청하거나 변경합니다.XML API 콘텐츠를 EmberJS로 올바르게 구문 분석하는 방법은 무엇입니까?
API는 XML, 예를 반환 내가 전에 EmberJs을 사용하지 않은
<responseITEMs xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ITEMs>
<ITEM libraryid="e3712df592253fcb4" featured="false" releasedate="2017-24-01 00:00:00" code="ABC001" detail="Some text" name="Dummy One" displaytitle="Dummy One" keywords="" id="1fef760bc1d61c8c" status="active" lastupdated="2016-24-01 04:53:28"/>
<ITEM libraryid="e3712df592253fcb4" featured="false" releasedate="2017-24-01 00:00:00" code="ABC003" detail="Some text" name="Dummy Three" displaytitle="Dummy Three" keywords="" id="3e35wba1d9b32a45" status="active" lastupdated="2016-24-01 04:53:15"/>
<ITEM libraryid="e3712df592253fcb4" featured="false" releasedate="2017-24-01 00:00:00" code="ABC002" detail="Some text" name="Dummy Two" displaytitle="Dummy Two" keywords="" id="cca6f0cab9defe80" status="active" lastupdated="2017-24-01 01:57:37"/>
</ITEMs>
</responseITEMs>
을, 그러나 그것은 나에게 제안했다. 나는 XML을 사용하는 것이 가능 확실하지 않다, 그래서 나는 현재 PHP 스크립트가 고정 된 API의 URL 엔드 포인트를 부르고 다른 로컬 서버에서 실행하고 JSON에 대한 응답으로 변환이 있습니다
$Json = json_encode(simplexml_load_string($data));
echo $Json;
내가 끝 JSON을 이 같은 외모와 함께 :
ITEMs: {
ITEM: [
{
@attributes: {
libraryid: "e3712df592253fcb4",
featured: "false",
releasedate: "2017-24-01 00:00:00",
code: "ABC001",
detail: "Some text",
name: "Dummy One",
displaytitle: "Dummy One",
keywords: "",
id: "1fef760bc1d61c8c",
status: "active",
trackcount: "0",
lastupdated: "2016-24-01 04:53:28"
}
},
{
@attributes: {..... etc
나는 내가 엠버 템플릿의 항목을 통해 간단한 루프를 (실제 용어는 항목 없음) 실행할 수있는 것을 의미하는 것이다 엠버의 정규화를 작성하려합니다. 이 시점 엠버 관리자에서
import DS from 'ember-data';
export default DS.RESTSerializer.extend({
normalizeResponse(store, primaryModelClass, payload, id, requestType) {
payload = {
ITEM: {
id: payload.ITEMs.ITEM[0]["@attributes"].id,
type: requestType.modelName,
name: payload.ITEMs.ITEM[0]["@attributes"].name
}
};
return this._super(store, primaryModelClass, payload, id, requestType);
}
});
내가 데이터 탭에서 ID와 이름을 얻고 있음을 보여 주지만, 내 템플릿에 그들을 얻을, 또는 분명히 인해 첫 번째 항목 이상 검색 할 수 없습니다 : 현재 그것은이다 하드 코드 된 ITEM [0]에 저장합니다.
경로 :
export default Ember.Route.extend({
model() {
return this.store.findAll('ITEM');
}
});
모델 :
export default DS.Model.extend({
name: DS.attr('string'),
});
템플릿 :
<strong>{{ model.name }}</strong>
<ul>
{{#each model.ITEM as |one|}}
<li>{{one.name}}</li>
{{/each}}
</ul>
은 분명히 내가 멀리 함께하지 오전 전혀 잘 엠버을 모른다. 나는 현재의 코드에 대한 기술 입력뿐만 아니라이 문제를 해결할 더 나은 솔루션에 대해 개방적이며 감사 할 것입니다.
당신은 [JS에서 XML을 구문 분석] 수 (https://api.jquery.com/jQuery.parseXML/). – Lux