Ember JS запускает действия на моем маршруте

1

текущий URL: http://localhost: 4200/band

router.js:

Router.map(function() {
    this.route('bands', function(){
        this.route('band', {path: ':slug'}, function(){
          this.route('songs');
          this.route('albums');
      });
    });
});

приложение/маршруты/bands.js

export default Route.extend({
    actions: {
      createBand: function(){
         this.get('controller').set('name', '');
      }
    }
});

приложение/шаблоны/bands.hbs

{{input type="text" class="new-band" placeholder="New Band" value=name}}
<button class="btn btn-primary btn-sm new-band-button" {{action 'createBand'}}>Add</button>

Похоже, функция createBand() не может быть запущена. Я что-то пропустил?

  • 0
    невозможно воспроизвести: jsbin.com/yozegaxevo/1/edit?html,js,output
  • 0
    @Jeff Джефф моя версия 2.18.0. твой другой.
Показать ещё 7 комментариев
Теги:
routes
ember.js
action

2 ответа

0

В итоге я сделал следующее, чтобы заставить его работать:

onclick={{action "createBand"}}
  • 0
    Вам нужно определить действия createBand в хеше действий контроллера bands.js, и оттуда вам нужно вызвать this.send('createBandInRoutefunction') вы можете сослаться на мой ответ.
0

Действия, указанные в файле.hbs, должны быть реализованы в controller но вы реализовали их в route. Когда действие не может быть найдено в controller оно переходит на свой route.

Обновлен JS Bin

Он должен работать.

  • 0
    спасибо, но проблема не в этом.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню