У меня есть маршрут, который загружает все мои модели и вложенный маршрут, который позволяет пользователю добавлять новую модель.Почему мой немодельный поддерживаемый шаблон сохраняется, когда я его перезагружаю?
App.Router.map(function() {
this.resource("foo", {path: "/foo"}, function() {
this.route("add", {path: "/add"});
});
});
Мой шаблон добавить выглядит следующим образом (очень простой)
{{input value=wat}}
Вот в linkTo из моего шаблона индекса
{{#linkTo 'foo.add'}}Add A New Model{{/linkTo}}
При нажатии на кнопку добавления я просто создать модель используя $ .ajax и переход обратно в маршрут списка. Все отлично работает, пока я не нажму ссылку «добавить» еще раз.
Когда добавочный маршрут загружает шаблон выше второго раза, он по-прежнему показывает значение «wat», которое я ввел ранее. Я надеялся, что это не будет сохраняться в любом состоянии, так как каждый раз, когда я «добавляю» новую модель, она не должна знать о каких-либо предыдущих данных модели.
Как я могу добиться этого с угольком 1.1.2+
Update
Подход, который я взял был сбросить каждый элемент в методе setupController маршрута (как это вызывается каждый раз, когда вы загрузить контроллер).
App.FooAddRoute = Ember.Route.extend({
model: function(params) {
var parentId = 1;
return Ember.Object.create({'bar': parentId});
},
setupController: function(controller, model) {
this._super(controller, model);
controller.set('bazz', '');
}
});
Какая-то часть меня надеялась, что ты бы не сказал, что, но я понимаю, плюсы контроллеров состояние полноты. Спасибо за быстрый ответ –
Мой крюк маршрутной модели возвращает родительский идентификатор, поэтому я не могу просто вернуть {}, поскольку init запускается только при создании контроллера (и это происходит только один раз) - как я могу сбросить поля в вопрос вручную? –
Я не уверен, что я полностью понимаю ваш рабочий процесс (не стесняйтесь модифицировать jsbin, чтобы показать проблему), но вы можете сбросить их во время крюка afterModel/setupController маршрута (они находятся в начале перехода. – Kingpin2k