从对象 JSON 内的嵌套数组填充 Select
Populating Select From nested array inside object JSON
My application has an auto-complete text element and when the selected item is chosen, there is a RESTful ajax call that queries a secondary system which returns a detailed version所选对象的连同数组。它看起来像这样:
{
"state": "GA",
"name": "Some Name",
"status": "Appointed",
"address2": "",
"phone": "555-555-5555",
"postalCode": 7777777,
"agents": [
{
"middleName": "Rhett",
"firstName": "Elmer",
"id": 123456,
"email": "",
"documentDeliveryOptions": [],
"lastName": "Butler Jr"
},
{
"middleName": "Alvin",
"firstName": "Frank",
"id": 9123456,
"email": "",
"documentDeliveryOptions": [],
"lastName": "Brown Jr"
}
]
}
最初,我使用集合进行查询,但我并没有真正返回集合。我正在返回一个带有嵌套集合的单个对象。所以我的问题是,查询此对象然后使用 agents
的嵌套集合填充 SELECT 元素的适当 Backbone 方法是什么?
在 backbone 之外,我会进行一个简单的 $.getJSON()
调用,然后解析响应。我只是对 Backbone 不够熟悉,无法理解框架的最佳模式。
一种处理方法是创建嵌套模型和集合,我通常采用这种方法。一种可能的实现可以是:
var AgentsCollection = Backbone.Collection.extend({});
var SomeModel = Backbone.Model.extend({
initialize: function(){
this.agents = new AgentsCollection;
}
});
...
changeAutoSelect: function(){ //called when an item in auto-select is selected
(new SomeModel()).fetch().done(function(){
//render select here
}
}
...
参考资料:
http://backbonejs.org/#FAQ-nested
Can we omit parentheses when creating an object using the "new" operator?
My application has an auto-complete text element and when the selected item is chosen, there is a RESTful ajax call that queries a secondary system which returns a detailed version所选对象的连同数组。它看起来像这样:
{
"state": "GA",
"name": "Some Name",
"status": "Appointed",
"address2": "",
"phone": "555-555-5555",
"postalCode": 7777777,
"agents": [
{
"middleName": "Rhett",
"firstName": "Elmer",
"id": 123456,
"email": "",
"documentDeliveryOptions": [],
"lastName": "Butler Jr"
},
{
"middleName": "Alvin",
"firstName": "Frank",
"id": 9123456,
"email": "",
"documentDeliveryOptions": [],
"lastName": "Brown Jr"
}
]
}
最初,我使用集合进行查询,但我并没有真正返回集合。我正在返回一个带有嵌套集合的单个对象。所以我的问题是,查询此对象然后使用 agents
的嵌套集合填充 SELECT 元素的适当 Backbone 方法是什么?
在 backbone 之外,我会进行一个简单的 $.getJSON()
调用,然后解析响应。我只是对 Backbone 不够熟悉,无法理解框架的最佳模式。
一种处理方法是创建嵌套模型和集合,我通常采用这种方法。一种可能的实现可以是:
var AgentsCollection = Backbone.Collection.extend({});
var SomeModel = Backbone.Model.extend({
initialize: function(){
this.agents = new AgentsCollection;
}
});
...
changeAutoSelect: function(){ //called when an item in auto-select is selected
(new SomeModel()).fetch().done(function(){
//render select here
}
}
...
参考资料:
http://backbonejs.org/#FAQ-nested
Can we omit parentheses when creating an object using the "new" operator?