2016-06-28 11 views
0

Ich muss einen Controller von einem anderen aufrufen.Rufen Sie einen Controller von einem anderen, ohne es neu zu laden

export default Ember.Controller.extend({ 
    needs : ['another'], 
    .... 
    callAnother: function() { 
    this.get('controllers.another').reloadIt(); 
    } 
}) 

Ein weiterer Controller:

export default Ember.Controller.extend({ 
    init: function() { 
    calling API 
    }, 
    reloadIt: function() { 
    calling API 
    } 
}) 

Als ich this.get('controllers.another').reloadIt() nennen. Es ruft init und reloadIt.

Ist es möglich, es ohne init aufzurufen, weil es bereits geladen ist.

Danke.

+0

versuchen, Ihre Frage zu verstehen. Sie versuchen auf die Eigenschaft reloadIt {} in Ihrem Controller zuzugreifen? –

+0

@JosephCC, ich muss in einigen Fällen einen anderen Controller vom ersten Controller laden. Zum Beispiel klicke ich auf den Button und der erste Controller ruft 'callAnother'. 'callAnother' sollte' reloadIt' in einem anderen Controller aufrufen. 'reloadIt' ruft API auf und lädt Inhalt neu. – nick

+0

@JosephCC, Aber jetzt, wenn ich 'reloadIt' aufrufen Ein anderer Controller ruft 'init' und' reloadIt' auf. In 'reloadIt' setze ich neue Eigenschaften -' setProperties', aber eine Vorlage wird nicht aktualisiert ... – nick

Antwort

0

Bitte versuchen Sie die Verwendung von Makros für diesen Zweck ist viel einfacher.

export default Ember.Controller.extend({ 
    needs : ['another'], 

callAnother: Ember.computed.alias('controllers.another.reloadIt'), 

actions:{ 

    callController: function(){ 
     this.get('callAnother'); 
    }, 

    } 
}) 
+0

Lassen Sie mich wissen, ob das funktioniert. Suche auch nach Ember-Makros, macht das Leben viel einfacher –

+0

woohoo, vielen Dank. Jetzt ruft es nicht 'init', nur' reloadIt' auf. Aber jetzt habe ich ein anderes Problem. Wenn ich in der Vorlage '' {{anotherVar}} 'benutze, und wenn ich' 'reloadIt' 'anotherVar '' 'this.set (' anotherVar ',' something new ')' template nicht aktualisieren werde ... – nick

+0

versuche dies this.set ('anotherVar', somethingNew) –

Verwandte Themen