С emberjs (1.0.0rc1) и ember-data (очень недавняя сборка # 36d3f1b), я пытаюсь настроить базовый пример crud. Я не могу понять, как получить представленную модель из представления, а затем обновить/сохранить ее. Вот то, что мой код выглядит следующим образом:ember js form submit to view
App = Ember.Application.create();
App.Router.map(function() {
this.resource('posts', function() {
this.route('create');
this.route('edit', {
path: '/:post_id'
});
});
});
App.PostsIndexRoute = Ember.Route.extend({
model: function() {
return App.Post.find();
}
});
App.PostsCreateView = Ember.View.extend({
submit: function() {
console.log(this.get('model')); // undefined
}
});
App.Post = DS.Model.extend({
title: DS.attr('string'),
body: DS.attr('string')
});
App.Post.FIXTURES = [{
id: 2,
title: 'a',
body: 'aa'
}, {
id: 5,
title: 'b',
body: 'bb'
}];
App.Store = DS.Store.extend({
revision: 11,
adapter: DS.FixtureAdapter.create({
simulateRemoteResponse: false
})
});
и шаблон создания:
<script type="text/x-handlebars" data-template-name="posts/create">
{{#view App.PostsCreateView tagName="form" classNames="form-horizontal"}}
<h3>Create</h3>
<div class="control-group">
<label class="control-label" for="title">Title</label>
<div class="controls">
<input type="text" id="title" placeholder="Title" />
{{view Ember.TextField valueBinding="title"}}
</div>
</div>
<div class="control-group">
<label class="control-label" for="body">Body</label>
<div class="controls">
<input type="password" id="body" placeholder="Body" />
</div>
</div>
<div class="control-group">
<div class="controls">
<button class="btn">Create</button>
</div>
</div>
<div>{{#linkTo 'posts'}}Back{{/linkTo}}</div>
{{/view}}
</script>
Как я могу получить доступ к значению вида (сериализовано модели) с крюка представить? Во-вторых, как я затем сохраняю это через FixtureAdapter?
Благодарим за ответ. Итак, следуя описанному вами подходу, это не приведет к циклическим отключениям сервера каждый раз, когда изменяется атрибут (типы пользователей в письме в текстовом поле)? Для второй части я должен был быть более ясным; Я просто хочу играть с FixturesAdapter, как если бы это был настоящий магазин, хотя изменения были потеряны при обновлении, а затем замените его на адаптер REST. Не могли бы вы указать мне на рабочий пример? – Harper
Нет. Я не эксперт в деталях, но более сложные адаптеры «умны», когда они сохраняют обновления на сервере и не подталкивают модель каждый раз, когда ее касаются. – pjmorse
Для FixturesAdapter это хороший подход, потому что они дают вам что-то для разработки, прежде чем у вас будет установлен серверный сервер. Однако в этом мире «упорство» означает «сделать его последним заново»; то, что вы получаете с помощью Fixtures, - это способность откладывать работу с таким упорством до конца. Если пришло время для вас разобраться с этим, пришло время перейти от FixturesAdapter. – pjmorse