我試圖動態地爲iron-ajax
模板分配一個屬性,但它解析爲undefined。爲什麼這個聚合物元素的屬性解析爲undefined?
<dom-module id="products-service">
<style>
:host {
display: none;
}
</style>
<template>
<iron-ajax id="productsajax"
auto
url="http://localhost:3003/api/taxons/products"
params='{"token":"my-token"}'
method='GET'
on-response='productsLoaded'
handleAs='json'>
</iron-ajax>
</template>
</dom-module>
<script>
(function() {
Polymer({
is: 'products-service',
properties: {
categoryid: {
type: String,
notify: true,
reflectToAttribute: true
}
},
//here I am trying to add and `id` to the `iron-ajax` `params` attribute.
ready: function() {
this.$.productsajax.params.id = this.categoryid;
}
});
})();
</script>
所顯示的網址是這樣的:
`http://localhost:3003/api/taxons/products?token=my-token&id=undefined`
的dom-module
的categoryid
屬性不是undefined
我可以看到正確的屬性值反映在屬性,這意味着它是與如何我將它分配給屬性。我也嘗試過created
和attached
回調,但仍然無法正常工作。
編輯:
<products-service products="{{products}}" categoryid="{{categoryid}}"></products-service>
由於這裏的categoryid
傳遞給服務看到已經有值: 這樣的實例它時,categoryid
被傳遞到模塊。 (在圖像上的元素名稱可能會略有不同。我縮短了他們,使問題更簡潔。)
的category-products-list
當服務被稱爲這個樣子的
<dom-module id="category-products-list">
<template>
<category-products-service products="{{products}}" categoryid="{{categoryid}}"></category-products-service>
<div>
<template is="dom-repeat" items="{{products}}">
<product-card on-cart-tap="handleCart" product="{{item}}">
<img width="100" height="100">
<h3>{{item.name}}</h3>
<h4>{{item.display_price}}</h4>
</product-card>
</template>
</div>
</template>
</dom-module>
<script>
(function() {
Polymer({
is: 'category-products-list',
properties: {
categoryid: {
type: String,
notify: true,
reflectToAttribute: true
}
},
ready: function() {
//this is undefined too
console.log("categoryid in the list module: "+categoryid)
}
});
})();
</script>
哪裏的類別ID從何而來?它在哪裏設置?當你添加console.log(this.categoryid)時會發生什麼;在你準備好的功能? –
我已經用你所尋求的信息編輯了這個問題。當我做'console.log(this.categoryid);':我得到'undefined' –
問題是你如何將categoryid傳遞到products-service中......它不是產品服務元素本身的問題。如果您執行 products-service>,它將起作用。所以接下來的問題是,你從哪裏得到分類ID?我不知道你從哪裏獲得{{categoryid}},但我會大膽猜測:您可以嘗試 products-service> –