聚合物将app-route的数据传递给未定义的自定义元素
Polymer pass data of app-route to custom element gone undefined
我试图将app-route的参数传递给未定义的自定义元素。我可以在文件中显示这个参数但在自定义元素中,它没有定义。以下是我的代码,请帮我检查一下如何修复谢谢。
在自定义元素文件中,getid
gone undefined.
<app-route
route="[[route]]"
pattern="/:slug/:id"
data="{{routeData}}"></app-route>
<!-- display correctly -->
[[routeData.id]]
<myelement-http-get
id="getCategoryData"
getid="[[routeData.id]]"
geturl="http://localhost:9000/polymer/category/"
jsonobject="{{jsonobject}}"
failure="{{failure}}"></myelement-http-get>
自定义元素
<script>
Polymer({
is: 'myelement-http-get',
properties: {
geturl: String,
getid: String,
jsonobject: {
type: Object,
notify: true
},
failure: {
type: Boolean,
notify: true,
readOnly: true
}
},
ready: function () {
/* undefined found this.getid */
this.$.ajaxData.url = this.geturl + this.getid;
this.$.ajaxData.generateRequest();
},
handleResponse: function (data) {
this.jsonobject = data.detail.response;
}
});
</script>
getid
和geturl
的数据绑定效果发生在 ready
回调之后,所以这不是您想要操作这些属性的地方。
getid
和geturl
。这个观察者只有在定义和改变属性时才会被调用(这种行为在Polymer 2.0中略有改变)。
您应该从ready
中删除更改,并添加复杂的观察者,如下所示:
Polymer({
...
properties: { ... },
observers: ['_generateRequest(geturl, getid)'],
_generateRequest: function(geturl, getid) {
if (geturl && getid) {
this.$.ajaxData.url = geturl + getid;
this.$.ajaxData.generateRequest();
}
}
);
相关文章:
- LinkedIn共享链接图片未使用自定义url更新
- 在JavaScript中定义自定义对象和函数(第2部分)
- 在JavaScript中定义自定义对象和函数
- 为html标记定义自定义css样式
- 定义自定义JavaScript异常的较短方法
- grunt-usemin:定义自定义流
- 用于定义自定义服务的语法
- AngularJS:$resource未调用自定义方法
- j查询单击事件未触发自定义事件处理程序
- 未在自定义 OL3 控件的构造函数中定义的原型属性
- WoopraTracker 未在自定义事件数据中定义
- JQuery$.ajax跨域请求中未发送自定义标头
- 自定义HTML5表单验证最初未显示自定义错误
- JSON中未显示自定义节点的属性
- Chrome应用程序jquery AJAX请求未发送自定义标头
- 数组控制台.log未使用自定义类 toString
- 未触发自定义jquery验证规则
- Angular.js Yeoman app.js文件未运行自定义函数
- Linkedin公共配置文件未显示自定义配置文件URL
- 未调用自定义 JavaScript 函数