2013-10-01 5 views
1

Я хочу установить некоторое свойство в внешнем маршрутизаторе с контроллера. Есть ли способ сделать это? В настоящее время, когда я пытаюсь: "this.get ('controllers.analyticsRunsIndex') получить ('цель')"Получение экземпляра внешнего маршрута от контроллера в ember

AS.AnalyticsIndexController = Ember.Controller.extend({ 
    needs: ["analyticsRunsIndex"], 
    engagements: null, 
    exercises: null, 
    exerciseRuns: null, 
    selectedExercise: null, 
    selectedExerciseRun: null, 
    selectedEngagement: null, 
    actions: { 
     goToAnalyticsRuns: function() { 
      if (this.get('selectedExerciseRun.id')) { 
       this.get('controllers.analyticsRunsIndex').get('target').set('exerciseRunId', this.get('selectedExerciseRun.id')); 

      } 
     } 
    } 
....... 

возвращается главный маршрутизатор в данный момент. Благодарю.

ответ

0

Не могу вспомнить, почему я так хотел делать это, но, похоже, нет прямого доступа к внешнему маршруту. То, что я мог бы сделать было получить доступ к внешнему маршрутизатору с помощью самого контроллера нравится:

AS.AnalyticsRunsIndex = Ember.ObjectController.extend({ 
    actions:{ 
     do: function(something){ 
      this.get('target').set('exerciseRunId', something); 
     } 
    } 
}); 

И в AnalyticsIndexController:

actions: { 
    goToAnalyticsRuns: function() { 
     if (this.get('selectedExerciseRun.id')) { 
      this.get('controllers.analyticsRunsIndex').send('do',this.get('selectedExerciseRun.id')); 

     } 
    } 
} 

Я думаю, что я пытался сделать, возможно, не было «Эмбер» способ делать вещи. Поэтому, если кто-то пытается решить подобную проблему, может быть, лучше поглядеть и посмотреть, есть ли лучший способ сделать что-то.

Смежные вопросы