Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 指定了集合的URL,但返回错误_Javascript_Backbone.js_Marionette - Fatal编程技术网

Javascript 指定了集合的URL,但返回错误

Javascript 指定了集合的URL,但返回错误,javascript,backbone.js,marionette,Javascript,Backbone.js,Marionette,我在myapp.com/groups上有一个类似这样的集合: [ { "_id": "52dd2bd1044bf96a12ed2319", "name": "US", "id": 1, "users": [] }, { "_id": "52dd2bd1044bf96a12ed231b", "name": "BR", "id": 3, "users": [] }, { "_id": "52dd2bd1044

我在myapp.com/groups上有一个类似这样的集合:

[   {
    "_id": "52dd2bd1044bf96a12ed2319",
    "name": "US",
    "id": 1,
    "users": []   },   {
    "_id": "52dd2bd1044bf96a12ed231b",
    "name": "BR",
    "id": 3,
    "users": []   },   {
    "_id": "52dd2bd1044bf96a12ed231c",
    "name": "SK",
    "id": 4,
    "users": []   },   {
    "_id": "52dd2bd1044bf96a12ed231d",
    "name": "CZ",
    "id": 5,
    "users": []   },   {
    "_id": "52dd2bd2044bf96a12ed231e",
    "name": "UK",
    "id": 6,
    "users": []   } ]
groups = new Groups();

groups.fetch();
然后我有主干模型和集合:

Group = Backbone.Model.extend({
        urlRoot: 'groups',
    });

Groups = Backbone.Collection.extend({
        url: 'groups',
        model: Group
    });
我想创建一个集合实例,如下所示:

[   {
    "_id": "52dd2bd1044bf96a12ed2319",
    "name": "US",
    "id": 1,
    "users": []   },   {
    "_id": "52dd2bd1044bf96a12ed231b",
    "name": "BR",
    "id": 3,
    "users": []   },   {
    "_id": "52dd2bd1044bf96a12ed231c",
    "name": "SK",
    "id": 4,
    "users": []   },   {
    "_id": "52dd2bd1044bf96a12ed231d",
    "name": "CZ",
    "id": 5,
    "users": []   },   {
    "_id": "52dd2bd2044bf96a12ed231e",
    "name": "UK",
    "id": 6,
    "users": []   } ]
groups = new Groups();

groups.fetch();
但我总是会出错:

未捕获的TypeError:对象[object object]的属性“url”不是函数


正如Puigcerber所指出的,最可能的原因是您没有在url组前面加上正斜杠。主干网对一些事情非常固执己见,url属性就是其中之一。尝试将组集合的url属性更新为/Groups

这可能是一个意外的主干。正如Rocky Lee所说,同步覆盖,但我敢打赌,这是一个激怒主干神的url属性。

试试这个

javascript

var Group = Backbone.Model.extend({});
var Groups = Backbone.Collection.extend({
    model: Group,
    url: "groups",
    parse: function(data) {
        return data;
    }
});
var GroupView = Backbone.View.extend({
    el: $("#page"),
    initialize: function() {
    },
    render: function() {
        var that = this;
        this.collection = new Groups();
        this.collection.fetch({
            type: "GET",
            contentType: 'application/json',
            dataType: "json",
            success: function(collection, response) {
                var template = _.template(yourViewTemplate, {
                    groups: that.collection.models
                });
                that.$el.html(template);
            },
            error: function(collection, response) {
                alert("error");
            }
        });

    }
});
html


您可以尝试在url:“/groups”之前添加斜杠,您是否覆盖过集合的同步方法?我想可能有错误。我没有覆盖集合的同步并使用斜杠url:“/groups”,但错误仍然是一样的。您使用什么主干插件?我使用的是Backbone.maironette和Backbone.syphon。我有斜杠url:“/groups”,我正在使用新下载的Backbone.js和Marionette.js,我没有在我的应用程序中扩展Backbone.Sync。很有趣。。。我从未使用过木偶网,尽管我一直想使用。如果我现在是你,我会通过删除应用程序中的任何和所有复杂性来调试它。禁用/注释出木偶,并使用运行应用程序所需的绝对最小值进行尝试。在不删除所有变量的情况下进行调试要困难得多。我仍然有一个错误-Uncaught TypeError:object[object object]的属性“url”不是一个函数。我开始认为这是因为您同时定义了urlRoot和url。主干网对RESTAPI设计非常固执己见,它将根据提供给集合的url属性自动构建模型url。在该过程中自动分配给模型的url属性很容易与模型的urlRoot属性冲突@布拉格拉迪斯拉夫酒店