Mam element z obiektu modelu, który chcę obserwować tak:obserwować zmiany dla obiektu w Polymer JS
<polymer-element name="note-editor" attributes="noteTitle noteText noteSlug">
<template>
<input type="text" value="{{ model.title }}">
<textarea value="{{ model.text }}"></textarea>
<note-ajax-button url="/api/notes/" method="POST" model="{{model}}">Create</note-ajax-button>
</template>
<script>
Polymer('note-editor', {
attached: function() {
this.model = {
title: this.noteTitle,
text: this.noteText,
slug: this.noteSlug
}
},
});
</script>
</polymer-element>
Chcę obserwować zmiany w modelu, ale widocznie to nie jest możliwe użycie modelChanged oddzwanianie w elemencie i ani w elemencie note-ajax-button. Co jest nie tak? Jak mogę to zrobić?
Próbowałem obserwować pola oddzielnie, ale w ogóle nie było to czyste. Stan elementu przycisku, który tam widzisz, powinien się zmienić w zależności od stanu modelu, więc muszę obejrzeć zmiany dla obiektu, a nie właściwości. Dzięki!
Dzięki! To właśnie próbowałem, ale nie można obserwować całego obiektu bez określenia ścieżek? Na przykład, kiedy dodaję nową właściwość, będę musiał dodać ją do bloku obserwacji z tą propozycją, czyż nie? – javivelasco
'Object.observe()' pozwala tylko na obserwowanie właściwości najwyższego poziomu. Na przykład, jeśli zmienisz własność 'c' w' x = {a: {b: {c: 'foo;}}} ',' o.O() 'nie obserwuje tej zmiany. 'observe-js', biblioteka Polymer'a na górze' o.O() 'dodaje wsparcie dla obserwacji głębokich zmian obiektów. – ebidel
Czy istnieje jakakolwiek karta wieloznaczna obsługiwana do obserwacji? Podobnie jak "model. *" Lub "model [*]. Wartość"? Jest to szczególnie przydatne, gdy "model" jest tablicą. – sepans