gpt4 book ai didi

javascript - 在主干js中的 View 中嵌套 View

转载 作者:可可西里 更新时间:2023-11-01 02:20:04 24 4
gpt4 key购买 nike

我正在使用 backbone.js 构建一些复杂的 View 关系,我想知道从 javascript 性能的 Angular 来看,做这样的事情是否有任何问题:

var viewOne = Backbone.View.extend({
tagName : 'li',
initialize : function() {
this.v2 = new viewTwo({parent:this});
},
clickHideOne : function() {
$(this.el).removeClass('selected');
}
});

var viewTwo = Backbone.View.extend({
tagName : 'a',
initialize : function() {
this.bind('click', this.clickHide, this);
},
clickHide(){
$(this.el).removeClass('selected');
this.options.parent.clickHideOne();
}
});

这是两个 View 之间循环引用的一个非常简单的示例,目的是让一个 View 中的事件轻松向上传播一个 View 链,或者维护对父 View 中对象的任何引用。在任何情况下这是否会成为问题,特别是与 IE7+ 中 DOM 元素引用的潜在泄漏有关,或者是否有其他推荐的引用父 View 的最佳实践。

另外,我知道我可以做 $(this.el).parent('li').removeClass('selected');在 viewTwo 中,这不是重点……这只是我对循环引用提出的问题的一个非常简单的例子。

最佳答案

让父 View 负责 subview 并不是一个坏主意,这在 Backbone 中很常见。我在上面的代码中看到的问题是 subview 知道其父 View 。我建议在 viewTwo 中使用自定义事件,并让 viewOne 绑定(bind)到这些事件,然后相应地做出响应。

通过使用 trigger() 方法和 bind() 方法,这对于 backbone 来说非常容易。

关于javascript - 在主干js中的 View 中嵌套 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7668760/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com