老实说,我没有在emberjs.com上找到有关valueBindings的有用指南。
// login_route.js 的
App.LoginRoute = Ember.Route.extend({
model: function() {
return Ember.Object.create();
}
});
基本上我在这里创建空JS对象作为登录模板的模型 // login.hbs 的
...
{{view Em.TextField valueBinding="email" id="email"}}
{{view Ember.TextField valueBinding="password" type="password" id="password"}}
...
因此,当用户开始在幕后键入user& pass时,Ember将创建名为“email”和“password”的2个属性,并将它们“追加”到当前模板的上下文(模型),并且属性将不断更新用户点击登录按钮?
我猜这是正确的,因为我可以在模板中进行简单的调试:
{{ email }}
(等于{{ controller.email }}
又等于{{ controller.model.email }}
)?
答案 0 :(得分:1)
valueBinding
基本上告诉Ember将名为password
的属性绑定到名为value
的Ember.TextField中的内部属性。
另外你可以将它绑定到属性,就像这样
{{view Em.TextField value=email id="email"}}
http://emberjs.jsbin.com/xujugayo/1/edit
现在的原因是
{{ controller.email }}
等于{{ controller.model.email }}
,因为支持您模板的控制器为ObjectController
。 ObjectController
是一个代理对象,这意味着它将代理支持它的模型的属性,就像它们在控制器上一样。