显示事件的元素。事件来自JSON文件,由core-ajax
它有一个细节和一个非细节模板,可以切换。 首先加载非详细信息模板,然后您可以切换其他信息并加载第二个模板。
<template if="{{showDetail}}" >
<core-ajax auto
response="{{data}}"
on-core-response="{{ajaxHandler}}"
url ="http://localhost:8080/myevents/getDetailEvent={{nummer}}";
handleAs="json"></core-ajax>
<div class="showbox" >
<h2 id= "title"> </h2>
<p><b>Start:</b> {{data.startDate }}</p>
<p><b>Ende:</b> {{data.endDate }}</p>
<p id = "place"></p> </br>
<p id = "description"></p> </br>
<p id = "manager"></p> </br>
<button on-tap="{{toggleView}}">Less</button>
</div>
</template>
非详细模板
<template if="{{!showDetail}}" >
<core-ajax auto
response="{{data}}"
on-core-response="{{ajaxHandler}}"
url ="http://localhost:8080/myevents/getEvent={{number}}";
handleAs="json"></core-ajax>
<div class="showbox" >
<h2 id= "title"> </h2>
<p><b>Start:</b> {{data.startDate}}</p>
<p id = "description"></p> </br>
<button on-tap="{{toggleView}}">More</button>
</div>
</template>
在我的JSON中,我有很多HTML标签,这就是我使用injectBoundHTML()
在屏幕上输出它们的原因。这是我的dataChanged
方法,在第一次加载组件时调用,或者我单击切换按钮:
dataChanged : function() {
if (this.data){
if(this.showDetail) {
this.injectBoundHTML(this.data.titleDe, this.$.titleDe);
this.injectBoundHTML(this.data.description, this.$.description);
this.injectBoundHTML(this.data.manager, this.$.manager);
} else {
this.injectBoundHTML(this.data.titleDe, this.$.titleDe);
this.injectBoundHTML(this.data.description, this.$.description);
}
}
}
第一次加载组件时,injectBoundHTML()
正在运行并注入来自json的所有内容。当我按下切换按钮时,不会发生注射!如果我在没有注入的dataChanged
方法中添加JSON内容,它就可以了!
我做错了什么?