首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当触发另一个视图中的函数时,视图呈现两次

当触发另一个视图中的函数时,视图呈现两次
EN

Stack Overflow用户
提问于 2020-03-01 06:42:43
回答 1查看 43关注 0票数 0

我的应用程序中有两个视图,第一个视图是一个模式对话框,第二个视图是最初触发模式的位置。关闭模式后,我使用触发器事件函数在第二个视图中触发了一个函数。第二个视图中的函数被触发,但是它会重新渲染整个第二个视图两次。我读过有关僵尸视图的文章,并确保解除绑定并删除模式视图,以防它导致重复的事件,但这不起作用。

下面是我的模式视图类:

代码语言:javascript
复制
var BaseModalView = base.views.View.extend({
  tpl: templates.get('modalTmp'),
  className: 'modal-view',
  events: {
    'evt:show': 'show',
    'evt:hide': 'hide',
    'click [data-action=resume-push-market]': 'proceed',
  },
  initialize: function(options) {
    this.options = options;
    _.bindAll(this, 'render', 'show', 'hide', 'remove');
    this.render();
  },
  render: function() {

    this.$el.html(this.tpl(this.options));
    this.$el.appendTo('body');
    this.$modal = this.$('.modal');

    this.$modal.on('hidden.bs.modal', _.bind(function() {
      this.close();
    }, this));


  },
  show: function() {
    this.$modal.modal('show');
  },
  hide: function() {
    this.$modal.modal('hide');
  },
  proceed: function() {
    e.preventDefault();
    e.stopPropagation();
    this.hide();
    this.vent.trigger('resume', true);
  },
  close: function() {
    //unbind events
    this.unbind();
    //Remove html from page
    this.remove();
  },

});
export default BaseModalView;

下面是我在第二个视图上侦听触发器的方式:

代码语言:javascript
复制
this.listenTo(this.vent,'resume', this.resume);

经过一些调试之后,我注意到只有在函数被触发后,第二个视图被呈现两次之后,模式视图才会被解除绑定并被移除。我不确定这是否是正常行为,因为我是Backbone.js的新手。任何帮助都将不胜感激。

更新:我想我已经缩小了是什么导致了额外的渲染。第二个视图是集合中的一个项目,因此如果该集合只有一个项目,即一个视图,那么当我的函数从模式触发时,它将重新呈现该视图一次。但是,如果集合中有多个视图,则在触发函数时将重新呈现每个视图。我已经在集合中的每个项目中初始化了模式视图,所以从技术上讲,它应该只重新呈现集合中的一个项目(视图),但它每次都会重新呈现它们。再次不确定我是否正确低估了主干事件序列,如果有人遇到类似的问题,请让我知道

EN

回答 1

Stack Overflow用户

发布于 2020-03-02 03:30:55

我找到了一种绕过这个问题的方法,通过将原始视图模型选项传递到模式视图中,一旦函数被触发并且视图被重新渲染,我就可以通过比较视图ID来确保只有产生模式的视图才会使用预期的信息进行更新。我敢肯定这是一种非常糟糕的方式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60470295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档