2015-03-06 4 views
2

Как я могу вызвать функцию внутри дескрипторов действий из setupController, расположенной в Маршруте. (Также, как я могу вызвать функцию внутри контроллера, а не самого маршрута).Вызов функции контроллера из Ember setupController внутри Route

Я хочу, чтобы моя страница анализировала параметры URL и заполняла некоторые переменные на основе этих параметров.

App.CresRoute = Ember.Route.extend({ 
    setupController: function(){ 
    this.send('testFunction', "Print me"); 
    }, 

    actions: { 
    testFunction: function(string){ 
     console.log(string); 
    }, 
    } 
}); 

Это возвращает ошибку: «Ничего не обработано функцией« testFunction ».»

Очевидно, что мои методы сложнее, с множеством параметров, и это просто для демонстрации проблемы.

+0

Вы решили это? – jstuartmilne

ответ

0

Я отредактировал это, чтобы попытаться прояснить ваш вопрос, но я не уверен, что вы подразумеваете под «вызовом функции внутри дескрипторов действий из setupController».

В примере кода, который вы указали, для ответа на вопрос testFunction, он должен быть выше дерева маршрутов, откуда он вызывается. Действия идут вверх. Если вы пытаетесь установить переменные на контроллере, вы правы, когда делаете это в крюке setupController, но для этого вам не нужны действия; просто определить testFunction вне действия блокирующего, и назвать его как обычный метод по маршруту:

App.CresRoute = Ember.Route.extend({ 
    setupController: function(){ 
    this.testFunction("Print me"); 
    }, 

    testFunction: function(string){ 
    console.log(string); 
    } 
}); 

Я не знаю, что Рули должны делать с этим вопросом, поэтому мне интересно, если я правильно понял, что вы пытаетесь это сделать?

+0

У меня есть тот же вопрос, что и у вас на маршруте на setupController (контроллер, ... Как вы можете вызвать метод в том контроллере, который вы получаете как параметр? – jstuartmilne

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