2

我正在尝试为 2 个不同的 Ember 模型使用不同的适配器,但这个设置似乎有问题。我能够使用它们各自的适配器获取(查找)这两个模型,但是当我尝试保存(提交)它们时,出现了一个问题,并且两者都尝试仅使用第一个模型的适配器。

<html>
    <head>
        <script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>
    <script type="text/javascript" src="js/handlebars.js"></script>
    <script type="text/javascript" src="js/ember-latest.js"></script>
    <script type="text/javascript" src="js/ember-data-latest.js"></script>
    </head>
    <body>
    <script type="text/x-handlebars" id="application">
    <h1>Application</h1>
    {{ outlet }}
    </script>

    <script type="text/x-handlebars" id="index">
    <h1>Index</h1>
    <b>Create</b>
    <a href="#" {{action "createOne"}}>Create One</a>
    <a href="#" {{action "createTwo"}}>Create Two</a>
    <hr>
    <b>Load</b>
    <a href="#" {{action "loadOne"}}>Load One</a>
    <a href="#" {{action "loadTwo"}}>Load Two</a>
    </script>

    <script>
    App = Ember.Application.create();

    App.Store = DS.Store.extend({
        revision: 12,
        adapter: DS.RESTAdapter.extend({
            url: "/one"
        })
    });

    App.Store.registerAdapter("App.Two",DS.RESTAdapter.extend({
        url: "/two"
    }));

    App.One = DS.Model.extend({
        name: DS.attr("string",{defaultValue:"one"})
    });

    App.Two = DS.Model.extend({
        name: DS.attr("string",{defaultValue:"two"})
    });

    App.IndexController = Ember.ObjectController.extend({
        createOne: function() {
            App.One.createRecord({}).save();
        },

        createTwo: function() {
            App.Two.createRecord({}).save();
        },

        loadOne: function() {
            App.One.find();
        },

        loadTwo: function() {
            App.Two.find();
        }
    });

        </script>
    </body>
</html>

Load One 和 Load Two 链接运行良好,分别点击了 url 的GET one/ones 和 GET two/twos。但是在使用创建一个和创建两个链接时,命中的链接是PUT one/ones 和 PUT one/twos。而不是 one/ones 和 two/twos。因此,Ember 正在尝试使用 One 的适配器创建第二次点击,而不是将其更改为 Two 的适配器。

有人知道吗?

4

0 回答 0