Ember / Ember-Data中的模型属性绑定

时间:2015-06-03 18:46:10

标签: ember.js ember-data

以下申请流程是否有推荐的方法或模式?

  1. 用户输入路线
  2. 检索路线模型并通过模板呈现给用户。
  3. 模板输入绑定到模型属性,以便用户修改它们时,商店中的数据会即时更新。
  4. 用户导航离开路线而不点击“保存”
  5. 我看到的问题是模型保留了用户更改的值,尽管它们没有保留到后端。

    我目前解决问题的方法是这样,感觉非常笨重:

    setupController钩子中,我使用Ember.copy从模型中设置了几个默认属性值来打破绑定:

    setupController: function(controller, model) {
        this._super(controller, model);
    
        var goals = model.get('goals');
    
        controller.set('goalOne', Ember.copy(defaultGoal.get('goalOne')));
        controller.set('goalTwo', Ember.copy(defaultGoal.get('goalTwo')));
        controller.set('goalThree', Ember.copy(defaultGoal.get('goalThree')));
    }
    

    将我的输入绑定到这些值:

    {{input value=goalOne type='text'}}
    

    单击“保存”时,调用updateModel()方法,将这些值设置回模型并保留到后端。

    updateModel: function() {
        var model = this.get('content');
        model.set('goalOne', this.get('goalOne');
        model.set('goalTwo', this.get('goalTwo');
        model.set('goalThree', this.get('goalThree');
    }
    
    actions: {
        save: function() {
            this.updateModel();
            this.get('content').save();
        }
    }
    

1 个答案:

答案 0 :(得分:1)

结帐ember-data-route。它允许您直接绑定到模型,并在用户离开时自动回滚而不保存。