2015-02-18 2 views
1

Прежде всего, я новичок в ember. У меня есть «show» руль внутри "templates/orders/show.hbs". Форма отправить действие в этом дескрипторе всегда возвращает "Uncaught Error: Nothing handled the action 'edit'. Если вы обработали действие, эта ошибка может быть вызвана возвратом истины из обработчика действий в контроллере, в результате чего действие должно пузыриться ». У меня есть действие редактирования, определенное в controllers/orders.js. Я помещаю действие редактирования в неправильный файл. Если да, то было бы правильным местом, чтобы иметь «редактировать» действиеОшибка при отсутствии: ничего не обработано действием «edit». Правильное имя контроллера, чтобы включить действие.

поручень (show.hbs):.!

<form class="form-horizontal" {{action "edit" this on="submit"}}> 
<div class="control-group"> 
    <div class="control-label"> 
     <label>Name</label> 
    </div> 

    <div class="controls"> 
     {{input value=name type="text"}} 
    </div> 
</div> 

<div class="control-group"> 
    <div class="control-label"> 
     <label>Age</label> 
    </div> 

    <div class="controls"> 
     {{input value=fury type="text"}} 
    </div> 
</div> 
<button type="submit" class="btn">submit</button> 
</form> 

controller file (orders.js): 
    export default Ember.ObjectController.extend({ 
     actions: { 
     edit: function(){ 
      console.log('EDIT - Entered'); 
     } 
     } 
    }); 

Благодаря

+0

Как отображается шаблон для показа? это шаблон маршрута или частичный? Действие должно выполняться на активном контроллере или маршруте. Попробуйте проверить имя текущего маршрута в инспекторе ember при отображении этого шаблона. – blessenm

ответ

1

Как было указано, на ваш вопрос немного неопределенный в отношении того, как вы создаете свой шаблон.

Во-первых, убедитесь, что у вас установлен инспектор Ember. Существуют версии для Chrome и Firefox и, вероятно, другие браузеры. Это упростит отладку вашего приложения Ember. Когда инспектор установлен и открыт, перейдите к «View Tree», и вы должны выяснить, какой контроллер является активным контроллером для вашего шаблона.

С синтаксисом:

{{action "myAction"}} 

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

{{action "myAction" target="view"}} 
Смежные вопросы