javascript - 如何将值从主视图传递到 subview 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.fetch({
      }).done(function (response) {
      });

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

  }

subview

    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 值从一个 View 传递到另一个 View ?

最佳答案

通过the options argument传递.

在主视图中

this.skuDetails = new skuDetailsView({
    model:self.skuDetailsModel,
    sku_id: sku_id
});

在您的 subview 中

initialize: function (options) {
    var sku_id = options.sku_id;
}

选项对象仅在初始化函数中可用。如果渲染时需要它,请存储它,例如使用 this.sku_id = options.sku_id

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

关于javascript - 如何将值从主视图传递到 subview Backbone.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32077596/

相关文章:

javascript - 如何动态创建和传递对象

javascript - 什么时候图书馆变得太多了?

javascript - View 不监听模型事件 Backbone.js

javascript - subview 事件回调是否优先?

javascript - Backbone.js,为什么这个回调被多次触发?

javascript - 淡入文档片段

javascript - 如何使用 deferred() 顺序触发 JQuery 函数?

javascript - 如何在 AngularJS 1.2 中仅使用模式的电子邮件验证?

javascript - 使用 jquery-UI Sortable,当没有行时如何将一行拖到表上?

javascript - Angular 和 Spring Rest api 通过 https 进行通信