Les contrôleurs de l'installation en fonction init sont toujours égaux
J'ai un Ember.Controller
, avec l'installation de code dans la fonction init. En réalité, ce code permet de requêtes AJAX.
Mais quand j'ai créer deux instances de ce contrôleur, ils sont toujours égaux. Pourquoi et que puis-je faire encore?
J'ai fait cet exemple simple, qui devrait écrire Test 1
Test 2
dans la console. Peu son écriture Test 2
deux fois.
App = Em.Application.create({});
App.TestController = Em.Controller.extend({
content: Em.Object.create({
info: null,
}),
init: function() {
if(this.id == 1)
{
this.content.set('info', "Test 1");
}
if(this.id == 2)
{
this.content.set('info', "Test 2");
}
},
});
var c1 = App.TestController.create({id: 1});
var c2 = App.TestController.create({id: 2});
console.log('C1: ' + c1.get('content').get('info'));
console.log('C2: ' + c2.get('content').get('info'));
OriginalL'auteur Lux | 2012-07-18
Vous devez vous connecter pour publier un commentaire.
Vous devez définir
content
valeur dansinit
, sinon, la valeur définie dans la déclaration de classe de temps sera partagé par toutes les instances.Voir http://codebrief.com/2012/03/eight-ember-dot-js-gotchas-with-workarounds/
Il fait partie de Javascript / Braise du modèle d'Objet. Voir github.com/emberjs/ember.js/issues/462. Probablement ne changera jamais...
Aussi, ne pas oublier d'appeler
this._super();
à l'intérieur de votre personnaliséinit
fonction ...Absolument vrai! Merci pour la précision.
OriginalL'auteur Mike Aski