我在我的项目中使用 jquery、backbonejs 和 underscorejs。 我的问题是,如何从给定的集合中获取值?
分支模型
define([
'underscore',
'backbone'
], function(_, Backbone) {
var BranchModel = Backbone.Model.extend({});
return BranchModel;
});
分支集合
define([
'jquery',
'underscore',
'backbone',
'models/branch/BranchModel'
], function($, _, Backbone, BranchModel){
var BranchCollection = Backbone.Collection.extend({
model: BranchModel,
url: "data.json",
parse: function(data) {
return data;
}
});
return BranchCollection;
});
分支视图
define(['jquery', 'underscore', 'backbone', 'collections/branch/BranchCollection', 'text!templates/locate-us/mapTemplate.html'], function($, _, Backbone, BranchCollection, mapTemplate) {
var MapView = Backbone.View.extend({
el: $("#page"),
initialize: function() {
this.$el.off();
},
render: function(id) {
var that = this;
this.collection = new BranchCollection();
var formValues = {
id: id
};
this.collection.fetch({
data: formValues,
success: function(collection, response) {
that.$el.html(mapTemplate);
},
error: function() {
console.log("error");
}
});
},
});
return MapView;
});
数据.json
[
{
"id": "1",
"name": "KCP KEBAYORAN LAMA, FMT-JKT",
"address":"Jl. Raya Kebayoran Lama No. 22 (PAL VII), Kel. Sukabumi Utara - Kec. Kebon Jeruk, Jakarta Barat 11540",
"latitude":"-6.1773997",
"longitude":"106.8409396"
},
{
"id": "2",
"name": "KK JL. PANJANG, PDI-JKT",
"address":"Jl. Panjang No 37 D, RT 006, RW 011, Kecamatan Kebon Jeruk, Kelurahan Kebon Jeruk, Jakarta Barat",
"latitude":"-6.1632894",
"longitude":"106.7633571"
}
]
比方说,我想检索记录 ID 为 1,所以我会得到这个值。
"id": "1",
"name": "KCP KEBAYORAN LAMA, FMT-JKT",
"address":"Jl. Raya Kebayoran Lama No. 22 (PAL VII), Kel. Sukabumi Utara - Kec. Kebon Jeruk, Jakarta Barat 11540",
"latitude":"-6.1773997",
"longitude":"106.8409396"
提前非常感谢。
看来您需要通过
id
获取模型,为此您需要在 urlRoot
中提供 model
。例如:
var BranchModel = Backbone.Model.extend({
urlRoot : '/branch'
});
这意味着您的
Rest API
中必须有分支资源的 url
/branch // returns all branches
/branch/:id // returns a single branch that has this id
现在您可以开始通过
id
获取模型,如下
var model = new BranchModel({id:someId});
model.fetch();
希望这对您有帮助。
你的意思是
this.collection.get("1")
?
如果您的集合正确地从服务器获取值,您可以使用上面的代码获得您想要的正确内容。
Pempek Farhan Dieng Resto 86A Jalan Pisang Candi Barat No.86A RT.07/RW.04 凯尔。皮桑·坎迪·克 (Pisang Candi Kec) Sukun SUKUN Kota Madya Malang Jawa Timur 65146 Malang 印度尼西亚