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
使用backgrid.js填充JSON的backbone.js_Backbone.js_Backgrid - Fatal编程技术网

使用backgrid.js填充JSON的backbone.js

使用backgrid.js填充JSON的backbone.js,backbone.js,backgrid,Backbone.js,Backgrid,我将backgrid.js与backbone.js一起使用。我试图在backgrid中填充JSON(用户列表)。下面是我的JSON [{"name": "kumnar", "emailId":"kumar@xxx.com", "locations":{"name":"ABC Inc.,", "province":"CA"} }] [{“姓名”:“kumnar”,“电子邮件ID”:”kumar@xxx.com", “地点”:{“名称”:“ABC公司”,“省”:“CA”} }]

我将backgrid.js与backbone.js一起使用。我试图在backgrid中填充JSON(用户列表)。下面是我的JSON

[{"name": "kumnar", "emailId":"kumar@xxx.com", "locations":{"name":"ABC Inc.,", "province":"CA"} }] [{“姓名”:“kumnar”,“电子邮件ID”:”kumar@xxx.com", “地点”:{“名称”:“ABC公司”,“省”:“CA”} }] 我可以访问以下名称和电子邮件ID

var User = Backbone.Model.extend({}); var User = Backbone.Collection.extend({ model: User, url: 'https://localhost:8181/server/rest/user', }); var users = new User(); var columns = [{ name: "loginId", label: "Name", cell: "string" }, { name: "emailId", label: "E-mail Id", cell: "string" } ]; var grid = new Backgrid.Grid({ columns: columns, collection: users }); $("#grid-result").append(grid.render().$el); userEntities.fetch(); var User=Backbone.Model.extend({}); var User=Backbone.Collection.extend({ 型号:用户, 网址:'https://localhost:8181/server/rest/user', }); var users=新用户(); 变量列=[{ 名称:“loginId”, 标签:“姓名”, 单元格:“字符串” }, { 名称:“emailId”, 标签:“电子邮件Id”, 单元格:“字符串” } ]; var grid=新的Backgrid.grid({ 列:列, 收藏:用户 }); $(“#网格结果”).append(grid.render().$el); userEntities.fetch(); 我的问题是,如何添加显示locations.name的列

我在列的name属性中指定了locations.name,但它不起作用。 { 名称:“地点.名称”, 标签:“电子邮件Id”, 单元格:“字符串” }


感谢您,主干网和backgrid目前都不支持嵌套模型属性,尽管有许多问题正在解决中。要正确显示位置信息,您可以在服务器上将locations对象转换为字符串,并在backgrid中使用字符串单元格,也可以尝试为locations列提供自己的内容


另外,您可以尝试一下,因为它似乎支持您正在寻找的路径语法。我以前没有尝试过,但如果它有效,您可以创建两个字符串列,分别名为
location.name
location.province

主干网和backgrid目前都不支持嵌套模型属性,尽管有许多问题正在解决。要正确显示位置信息,您可以在服务器上将locations对象转换为字符串,并在backgrid中使用字符串单元格,也可以尝试为locations列提供自己的内容


另外,您可以尝试一下,因为它似乎支持您正在寻找的路径语法。我以前没有尝试过,但如果它有效,您可以创建两个字符串列,分别名为
location.name
location.province

扩展Cell(或任何现有的扩展,如StringCell)非常容易。给你一个开始:

var DeepstringCell = Backgrid.DeepstringCell = StringCell.extend({

    render: function () {
        this.$el.empty();
        var modelDepth = this.column.get("name").split(".");
        var lastValue = this.model;
        for (var i = 0;i<modelDepth.length;i++) {
            lastValue = lastValue.get(modelDepth[i]);
        }
        this.$el.text(this.formatter.fromRaw(lastValue));
        this.delegateEvents();
        return this;
    },

});
var DeepstringCell=Backgrid.DeepstringCell=StringCell.extend({
渲染:函数(){
这个。$el.empty();
var modelDepth=this.column.get(“name”).split(“.”);
var lastValue=this.model;

对于(var i=0;i来说,扩展Cell(或任何现有的扩展,如StringCell)非常容易

var DeepstringCell = Backgrid.DeepstringCell = StringCell.extend({

    render: function () {
        this.$el.empty();
        var modelDepth = this.column.get("name").split(".");
        var lastValue = this.model;
        for (var i = 0;i<modelDepth.length;i++) {
            lastValue = lastValue.get(modelDepth[i]);
        }
        this.$el.text(this.formatter.fromRaw(lastValue));
        this.delegateEvents();
        return this;
    },

});
var DeepstringCell=Backgrid.DeepstringCell=StringCell.extend({
渲染:函数(){
这个。$el.empty();
var modelDepth=this.column.get(“name”).split(“.”);
var lastValue=this.model;
对于(var i=0;i