Я столкнулся с странной проблемой. У меня есть шаблон статьи. В шаблоне статьи я вызываю {{render "category/new" category}}
.Ember.js {{render}} вспомогательная модель неверно установлена
Однако при сохранении новой категории через действие используется неправильная модель. Когда я меняю его на {{render "category/new" this}}
, он использует модель статьи. Когда я оставляю часть модели пустой, она также не работает.
Шаблон:
<script type="text/x-handlebars" data-template-name="article">
((...))
{{render "category/new" category}} // calls the popup for adding a new category
((...))
</script>
<!-- popups -->
<script type="text/x-handlebars" data-template-name="category/new">
<div class="popup">
<h2>Add new category</h2>
Name: {{input type="text" value=name}}<br />
Image: {{view App.UploadFile name="image" file=image }}<img {{bind-attr src=image}}><br />
Category-parent: {{input value=categoryRelation}}<br />
<button {{action 'saveCategory'}}>Save</button>
</div>
</script>
Router:
// both routes have the render called, it uses the same template
this.resource('article', {path: '/article/:id'});
this.resource('article.new', {path: "/article/new"});
Модель:
App.Category = DS.Model.extend({
name: DS.attr('string'),
image: DS.attr('string'),
categoryRelation: DS.belongsTo('category')
});
App.Article = DS.Model.extend({
name: DS.attr('string'),
category: DS.hasMany('category')
)};
контроллера:
App.CategoryNewController = Ember.ObjectController.extend({
actions: {
saveCategory: function() {
console.log('CategoryNewController saveCategory action'); // gets called
console.log(this.get('model')); // the wrong one
this.get('model').save(); // saves all categories when using {{render "category/new" category}}
}
}
});
Пожалуйста, обратите внимание, нет маршрута для категории/новые, потому что она не нужна для {{}} оказать помощник. См: http://emberjs.com/guides/templates/rendering-with-helpers/#toc_specific (смотри таблицу в нижней части страницы)
Похоже, он должен работать. Можете ли вы настроить JSFiddle? – monocle