valueBinding如何在Ember中运行?

时间:2014-03-31 18:20:14

标签: javascript ember.js

老实说,我没有在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 }})?

1 个答案:

答案 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 }},因为支持您模板的控制器为ObjectControllerObjectController是一个代理对象,这意味着它将代理支持它的模型的属性,就像它们在控制器上一样。