我有以下代码
node.cached_total_votes
我的问题是即使ajax调用正在发生并且数据被检索,响应“handleResponse”方法永远不会被触发,并且“ajaxResponse”也没有被填充。我试着查看不同的教程和代码演示,但我似乎无法找到我的代码有什么问题。
答案 0 :(得分:2)
当使用<dom-module
时,铁ajax或其他任何东西需要进入<template
,因为它放在阴影dom中。
<强>例如强>
<dom-module id="custom-Element">
<template>
<iron-ajax auto ..... >
<span>{{ajaxResponse.city.name}}</span>
</template>
..
...
.....
</dom-module>
我会进一步解释一下。
因为您正在创建一个dom-module custom-Element
并且您使用<custom-Element></custom-element>
调用它来显示数据dom-module
内的任何内容都需要位于<template></template>
内,所以它放在阴影dom中并注册id名称custom-Element
。
想一想html5 <video>
标签
现在通过
<video width="320" height="240" controls>
<source src="movie.mp4" type="video/mp4">
</video>
它会播放视频。
然而,当您检查<video>
时,您无法看到任何特殊的CSS,例如播放/停止暂停按钮或任何javascript,因为它放置在浏览器的Shadow Dom中并隐藏起来。
因此video
标记它只是在浏览器中构建的名称,因此您可以用来播放视频。要把它放在阴影中,你需要一个<template>
用聚合物做同样的事情
<dom-module id="any-name">
<template>
...
</template>
</dom-module>
并使用它
<any-name></any-name>
与html5中的<video></video>
标记相同。
这里有好文章来阅读web components以及为什么使用模板