Ember - 在表单域中显示模型值

时间:2014-01-18 22:20:21

标签: ember.js ember-data

我有一个像这样的用户设置表单:

<script type="text/x-handlebars" data-template-name="settings">
<form class="form-horizontal user-form" {{action "update" on="submit"}}>        
    <div>
        <label>First Name</label>
        {{input type="text" value=firstName placeholder="First Name"}}
        {{error.firstName}}
    </div>

    <div>
        <label>Last Name</label>
        {{input type="text" value=lastName placeholder="Last Name"}}
        {{error.lastName}}
    </div>

    <div>
        <label>Email Address *</label>
        {{input type="text" value=email placeholder="Email Address"}}
        {{error.email}}
    </div>
</form>
</script>

在此页面的路线中,我定义了模型:

App.SettingsRoute = Ember.Route.extend({
    model: function() {    
        return this.store.find('user', 1);
    }
});

如果保留这样的内容,表单将自动填充从模型中检索到的值。但是,如果我添加一个控制器:

App.SettingsController = Ember.Controller.extend({
    actions: {
        update: function() {
               // Do something
        }
    }
});

......他们不会。那么如何将我的模型与此控制器结合使用来设置属性?

1 个答案:

答案 0 :(得分:2)

您定义控制器的方式是常规Ember.Controller而不是Ember.ObjectController,因此控制器不会代理模型。如果您将其修改为:

App.SettingsController = Ember.ObjectController.extend({
    actions: {
        update: function() {
               // Do something
        }
    }
});

然后它仍然应该自动填充模型中的值。