使用backgrid.js填充JSON的backbone.js
我将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.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目前都不支持嵌套模型属性,尽管有许多问题正在解决中。要正确显示位置信息,您可以在服务器上将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