2015-07-24 10 views

risposta

16

Per qualche motivo è contrassegnato come un metodo privato nel docs, per vederlo dovrai spuntare la casella di controllo privata.

Ci sono 2 modi per usarlo, con e senza passare un nome di controllo ad esso

App.PostController = Ember.Controller.extend({ 
    posts: Ember.inject.controller() 
}); 

Quando il nome del controller non è passato, brace utilizza il nome della proprietà di guardare in su, come posts: Ember.inject.controller('posts').

Si specifica sempre il nome del controller solo quando la proprietà e il controller hanno nomi diversi.

App.PostController = Ember.Controller.extend({ 
    myPosts: Ember.inject.controller('posts') 
}); 
+2

Ho inviato un [PR] (https://github.com/emberjs/ember.js/pull/11883) dovrebbe essere unito quando i manutentori hanno la possibilità ^^ –

6

Ecco un semplice esempio e this blog post parla più circa l'evoluzione da iniezione manuale a "Ember.inject"

export default Ember.Controller.extend({ 
    flashManager: Ember.inject.controller('flash-message'), 

    actions: { 
    upVote: function() { 
     // Do some voting 
     var flashManager = this.get('flashManager'); 
     flashManager.pushMessage('error', 'Your vote does not count'); 
    } 
    } 
} 
}); 
+0

Per un controller annidato, si consiglia "admin/product" o "admin.product" come proprietà name? Entrambi sembrano funzionare in Ember 1.13, non sono sicuro che sia più convenzionale. – MarkLunney

+1

Le parole "strada" sono preferite perché mostrano il percorso del file in questione sul file system. –

Problemi correlati