Wie der Titel schon sagt, im Wert zu ändern beobachtet. Gibt es eine Möglichkeit, einen beobachteten Wert zu ändern, ohne den Beobachter-Rückruf in Polymer auszulösen?Gibt es eine Möglichkeit ein, ohne Auslösen den Beobachter Rückruf in Polymer
Zum Beispiel
Polymer({
is: 'my-component',
properties: {
aValue: {
type: Number,
value: 0,
observer: '_valueChanged',
notify: true
},
ref: {
type: Object,
computed: '_computeRef(channel, channelNumber)'
}
},
_computeRef: function(channel, channelNumber) {
var ref = new Firebase("/*link*/");
ref.on("child_changed", function(data) {
this.aValue.setWithoutCallingObserver(data.val());
}.bind(this));
return ref;
},
_valueChanged: function() {
var message = { aValue: this.aValue };
if (this.ref) {
this.ref.set(message);
}
}
});
Dies wäre nützlich, weil ich jetzt liegt in dem folgende Szenario erlebe:
- Anpassung
aValue
in einem Drittanbieter-App - Firebase-Updates alle Clients
- Der .on Rückruf setzt den Wert und löst den Beobachter Rückruf
- Verursacht ein .set
- zurück zu 2.
Update Firebase: Die Frage ist nicht Feuerbasis verwendet. Ich glaube, die Lösung besteht darin, die Kontrolle darüber zu erlangen, wie Updates auf beobachtete Werte in Polymer angewendet werden. Zum Teil, weil Änderungen an den Werten im Firebase-Speicher auch von Anwendungen der 3. Partei (nicht notwendigerweise Web) vorgenommen werden können.
möglich Duplikat [Firebase Syncing Ursachen Verzögerung] (http://stackoverflow.com/questions/32529499/firebase-syncing-causes-lag) –
Sie können eine neue Variable firebaseValue hinzufügen und es in Ihrem _computeRef Funktion aktualisieren. Im Aufruf _valueChanged Funktion ref.set nur, wenn aValue verschieden von firebaseValue ist. – Srik