Backbone.js - 如何从集合中获取值?

问题描述 投票:0回答:3

我在我的项目中使用 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"

提前非常感谢。

javascript jquery json backbone.js
3个回答
1
投票

看来您需要通过

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();

希望这对您有帮助。


0
投票

你的意思是

this.collection.get("1")

如果您的集合正确地从服务器获取值,您可以使用上面的代码获得您想要的正确内容。


0
投票

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 印度尼西亚

© www.soinside.com 2019 - 2024. All rights reserved.