Javascript 如何将值从mainview传递到subview Backbone.js

Javascript 如何将值从mainview传递到subview Backbone.js,javascript,backbone.js,Javascript,Backbone.js,主视图 events: { "click .open-sku-details":"openSkuDetails" }, openSkuDetails: function(ev) { var self = this; var sku_id = $(ev.target).attr('sku_id'); self.skuDetailsModel.set("id",sku_id); self.skuDetailsModel.fetc

主视图

     events: {
    "click .open-sku-details":"openSkuDetails"

  },
  openSkuDetails: function(ev) {
    var self = this;
      var sku_id = $(ev.target).attr('sku_id');
      self.skuDetailsModel.set("id",sku_id);
      self.skuDetailsModel.fetch({
      }).done(function (response) {
      });

      this.skuDetails = new skuDetailsView({model:self.skuDetailsModel});
      return this.skuDetails.render();

  }
    var $ = jQuery = require('jquery'),
  Backbone = require('backbone'),
  Handlebars = require('handlebars'),
  _ = require('underscore'),
  skuDetailsTemplate = require("../../templates/product/SkuDetails.html"),
  skuDetailsModel = require('../../models/product/SkuDetailsModel');
var SkuDetailsView = Backbone.View.extend({
  el: ".sku-details-container",
  tagName:"div",

  initialize: function () {
    var self = this;
    this.skuDetailsModel = new skuDetailsModel();
    this.listenTo(self.skuDetailsModel, 'add', self.render);
    this.listenTo(self.skuDetailsModel, 'change', self.render);
     self.skuDetailsModel.fetch({
      }).done(function (response) {
      });
  },
  render: function () {
    var self = this;
    this.$el.html(skuDetailsTemplate({
      skuDetails: self.skuDetailsModel.toJSON(),
    }));
  }

});

module.exports = SkuDetailsView;
子视图

     events: {
    "click .open-sku-details":"openSkuDetails"

  },
  openSkuDetails: function(ev) {
    var self = this;
      var sku_id = $(ev.target).attr('sku_id');
      self.skuDetailsModel.set("id",sku_id);
      self.skuDetailsModel.fetch({
      }).done(function (response) {
      });

      this.skuDetails = new skuDetailsView({model:self.skuDetailsModel});
      return this.skuDetails.render();

  }
    var $ = jQuery = require('jquery'),
  Backbone = require('backbone'),
  Handlebars = require('handlebars'),
  _ = require('underscore'),
  skuDetailsTemplate = require("../../templates/product/SkuDetails.html"),
  skuDetailsModel = require('../../models/product/SkuDetailsModel');
var SkuDetailsView = Backbone.View.extend({
  el: ".sku-details-container",
  tagName:"div",

  initialize: function () {
    var self = this;
    this.skuDetailsModel = new skuDetailsModel();
    this.listenTo(self.skuDetailsModel, 'add', self.render);
    this.listenTo(self.skuDetailsModel, 'change', self.render);
     self.skuDetailsModel.fetch({
      }).done(function (response) {
      });
  },
  render: function () {
    var self = this;
    this.$el.html(skuDetailsTemplate({
      skuDetails: self.skuDetailsModel.toJSON(),
    }));
  }

});

module.exports = SkuDetailsView;
如何将
id
值从一个视图传递到另一个视图?

通过

在你看来

this.skuDetails = new skuDetailsView({
    model:self.skuDetailsModel,
    sku_id: sku_id
});
在您的子视图中

initialize: function (options) {
    var sku_id = options.sku_id;
}
options对象仅在initialize函数中可用。如果渲染时需要,可以使用
this.sku\u id=options.sku\u id
存储它


当然,您也可以通过模型将其作为属性传递,但如果它只是与视图相关的,则将其作为选项传递更有意义。

Uncaught TypeError:无法读取未定义的属性“sku_id”