余烬选择改变,但我的模型仍然是'没有脏'



我有两个模型,MyModel和MyOptions。

MyModel有一个myValue属性belongsTo('myOption ')和myName('string')。

在视图中,我有一个myName的输入和一个MyOptions模型的可能值的选择。

当我选择一个新的相关行时,我希望myModel是'dirty'。如果我改变myName, myModel就会变得'脏'(正确)。

我做错了什么?

谢谢,

代码

请参阅本文档
window.App = Ember.Application.create();
App.ApplicationAdapter = DS.FixtureAdapter.extend();
App.IndexController = Ember.ObjectController.extend({
});
App.IndexRoute = Ember.Route.extend({
    model: function() { 
        return Ember.RSVP.hash({
            myModel: this.store.find('myModel', 1),
            myOptions: this.store.find('myOption')
        });
    },
});
App.MyOption = DS.Model.extend({
    name: DS.attr('name')
});
App.MyOption.FIXTURES = [
    { name: 'User a', id: 1 }, 
    { name: 'User b', id: 2 },
    { name: 'User c', id: 3 },
];
App.MyModel = DS.Model.extend({
    myValue: DS.belongsTo('myOption'),
    myName: DS.attr('string')
});
App.MyModel.FIXTURES = [
    { 
        id: 1,
        myValue: 2
    }
];

<script type="text/x-handlebars" data-template-name="index">
    <h1>Test</h1>
    <lablel>My Value</label>{{input value=myModel.myValue.id}}
    <lablel>My Name</label>{{input value=myModel.myName}}
    {{view "select" 
        content=myOptions 
        selectionBinding=myModel.myValue 
        optionLabelPath="content.name"}}
    {{myModel.isDirty}}
</script>

ember-data还不能处理关系的脏性。您需要在用户空间中实现它。

  • 这是相关的问题:https://github.com/emberjs/data/issues/2122
  • 这个老问题专门讨论了belongsTo: https://github.com/emberjs/data/issues/1367

不应使用selectionBinding,而应使用value:

{{view "select" 
    content=myOptions 
    value=myModel.myValue 
    optionLabelPath="content.name"}}

相关内容

最新更新