我是Ember.js的新手,但精通MVC和Backbone(甚至是可可和smalltalk),但由于某种原因,Ember坚持其高度模糊和不一致的API让我无法理解1)绑定和2)如何与持久记录相关。
我有一个有输入的视图。我知道。我有一个属于控制器的模型。我知道。我不明白视图是如何知道(或者应该知道)关于控制器的,我不明白当我准备将它推到后端时,模型如何获取我在视图中键入的文本(表面上看)与.save()
)。这些应该是Ember气喘吁吁抽象的样板样式的东西,但我发现我必须通过Ember.js来源才能理解发生了什么。
我已经阅读过这些文档,他们的例子非常人为,无法使用(仅提供最基本的例子,当我们谈论“野心勃勃的网络应用程序”时,这是毫无意义的,其中包含了 for)。
应该注意的是,我们在内部使用ember-data,这个特定的路径有多个视图,控制器和模型。
答案 0 :(得分:1)
因此,假设您在索引模板中有输入:
<script type="text/x-handlebars">
{{input type="text" value=name}}
</script>
Ember会自动将App.IndexController
绑定到此模板,并将控制器的name属性绑定到输入字段的value属性。当输入中的值发生变化时,它将在控制器中自动更新。当您准备将其保存在模型中时,您可以在操作中访问该属性。
App.IndexController = Ember.ObjectController.extend({
actions: {
save:function() {
var name = this.get('name');
var model = this.store.createRecord('item');
item.set('name',name);
item.save();
}
}
});
这将触发向/items
发布项目的帖子请求。
如果你有一个更具体的例子,我可以试着告诉你它是如何运作的。