Esiste comunque la possibilità di evitare l'esecuzione di codice osservabile in alcuni casi?Come impostare una proprietà che è osservabile ma non eseguire la funzione osservabile per alcuni casi in EmberJS
Come ho provato? L'unico modo che ho trovato di evitare è l'aggiunta di nuove proprietà alla vista come flag che verranno verificate prima di eseguire il codice del metodo osservabile.
Questa è la jsfiddle collegamento di base sto fornendo con funzionalità di base osservatore HTML
<script type="text/x-handlebars" data-template-name="application">
{{view MyApp.MyContainerView name="Santa Claus"}}
</script>
<script type="text/x-handlebars" data-template-name="foo">
{{view.testProp}}
</script>
JS
MyApp = Ember.Application.create({
autoinit: false
});
MyApp.router = Ember.Router.create({
root: Ember.Route.extend({
index: Ember.Route.extend({
route: '/'
})
})
});
MyApp.ApplicationController = Ember.Controller.extend({});
MyApp.MyContainerView = Em.ContainerView.extend({
childViews: ['foo'],
foo: Em.View.extend({
testProp: 100,
testPropObservable: function(){
console.log("Prop Observed");
}.observes('testProp'),
init: function() {
this._super();
this.set('testProp', 200);//i want to avoid obeserver here
},
templateName: 'foo'
})
});
MyApp.initialize(MyApp.router);
Yea h, eri solo più veloce :), +1 BTW :) –
quel codice era solo un esempio per lavorarci .. sono d'accordo che possiamo aggiungere osservatore durante l'inizializzazione .. volevo sapere se c'è comunque che possiamo evitare la chiamata all'osservatore prima di impostare un valore per la proprietà ... – thecodejack
Non sai cosa stai chiedendo esattamente. Il 'lavoro' di un osservatore è quello di ricevere una notifica quando una proprietà cambia. Sicuramente puoi evitare le chiamate agli osservatori aspettando fino a tardi per crearle, come nell'esempio precedente. Una variazione sarebbe avere un osservatore che aggiunge un altro osservatore e magari rimuove se stesso. Con quello in atto si potrebbe "evitare" l'osservatore principale sul set iniziale della proprietà. E 'questo quello che stai andando? –