Sto tentando di assegnare dinamicamente un attributo a un modello iron-ajax
ma si risolve in undefined.Perché la proprietà di questo elemento polimerico si risolve in modo indefinito?
<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>
l'URL risultante è simile al seguente:
`http://localhost:3003/api/taxons/products?token=my-token&id=undefined`
categoryid
proprietà s' Il dom-module
non è undefined
come posso vedere il valore della proprietà corretta riflette sugli attributi che significa che qualcosa a che fare con il modo lo sto assegnando all'attributo. Ho anche provato questo sui callback created
e attached
e ancora non funziona.
Edit: Il categoryid
viene passato al modulo quando si crea un'istanza in questo modo:
<products-service products="{{products}}" categoryid="{{categoryid}}"></products-service>
come si vede qui la categoryid
passato al servizio è già un valore. (I nomi degli elementi sull'immagine possono essere leggermente diversi. Ho accorciato loro di fare la domanda meno prolisso.)
Il category-products-list
dove il servizio viene chiamato aspetto come questo
<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>
Da dove viene l'IDCategoria viene? Dove è ambientato? Cosa succede quando si aggiunge console.log (this.categoryid); nella tua funzione pronta? –
Ho modificato la domanda con le informazioni che cerchi. Quando faccio 'console.log (this.categoryid);': Prendo 'undefined' –
il problema è come si passa il categoryid al servizio prodotti ... non è un problema nell'elemento del prodotto-servizio stesso . Se fai products-service> funzionerà. Quindi la prossima domanda è, da dove prendi il categoryid? Non so da dove arrivi {{categoryid}}, ma farò un'ipotesi selvaggia: potresti provare products-service> –