Ich versuche, das berechnete Attribut in Polymer zu verwenden, aber ich bekomme immer einen leeren Wert. In diesem Fall habe ich ein Attribut in meinem benutzerdefinierten Element namens datagraph. Und ich mache eine Post-Anfrage an einen Server, erhalte eine JSON-Datei, berechne das Ergebnis und zeige es dann an. Das ist mein benutzerdefiniertes Element:Leere Wert auf Polymer berechnet Attribut
<dom-module id="cost-card">
<template>
<style>
p.datos3{
color: #10cebc;
text-align: center;
font-size: 22px;
margin-top: 0px;
}
</style>
<p class="datos3">{{datagraph}}</p>
</template>
<script>
Polymer({
is: "cost-card",
properties:{
usr:{
type: Number,
value: 2
},
command:{
type: String,
value: "SP_GetCostoCampania"
},
datagraph:{
type: Number,
computed: 'getCost(command,usr)'
}
},
getCost: function(command,usr){
var options = {
hostname: 'localhost',
path: '/',
port: 8081,
secure: false,
method: 'POST',
headers: {
'x-powered-by': 'HTTPClient.js'
},
'Content-Type': 'application/json'
}
var innerCost;
var example1 = new HTTPClient(options);
example1.post("/executeGraph1?command="+ command + "¶m1=" + usr, function (err, res, body) {
body = JSON.parse(body);
innerCost = body[0].price * body[0].exchengeRate;
});
return innerCost;
}
});
</script>
</dom-module>
Ich habe eine Express-Server ausgeführt wird, wird die Information korrekt geliefert, aber der {{}} Datengraph-Tag hält leer. Ich denke, es kann sein, weil die Post-Anfrage eine asychrone Aufgabe ist, und der Wert wird später geliefert, aber ich habe auch versucht, Promise mit dem gleichen Ergebnis zu verwenden.
Kennt jemand den richtigen Weg, dies zu tun?
Ich füttere tatsächlich get Kosten mit 2 anderen Argumenten aber gelöscht hier, um sie den angezeigten Code zu vereinfachen. Ich wusste nicht, dass es einen Unterschied machen würde. Ich werde die Frage bearbeiten. Könnten Sie mir sagen, ob diese neue Information ändert, was Sie als Antwort vorgeschlagen haben? –
Entschuldigung, ich habe Ihren Code bearbeitet, nicht meins. Jetzt ist es korrekt –
In diesem Fall möchten Sie einen Beobachter verwenden. Ich habe meinen Code aktualisiert, der das anzeigt. – vox