текущий 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() не может быть запущена. Я что-то пропустил?
В итоге я сделал следующее, чтобы заставить его работать:
onclick={{action "createBand"}}
createBand
в хеше действий контроллера bands.js, и оттуда вам нужно вызвать this.send('createBandInRoutefunction')
вы можете сослаться на мой ответ.
Действия, указанные в файле.hbs, должны быть реализованы в controller
но вы реализовали их в route
. Когда действие не может быть найдено в controller
оно переходит на свой route
.
Обновлен JS Bin
Он должен работать.