Backbone.js 在主干中查找渲染视图

Backbone.js 在主干中查找渲染视图,backbone.js,backbone-views,Backbone.js,Backbone Views,有没有办法在主干中找到渲染视图?我有4种观点 登录、联系、主页和关于 我想知道当前渲染的是哪个视图 假设您正在将所有视图渲染到同一个元素中(否则您可以从元素id知道视图是什么),您可以在创建视图时向视图添加类似“class”的属性。然后可以通过view.options访问该属性 例如: var LoginView = Backbone.View.extend(); var loginView = new LoginView({ model: new Backbone.Model, el: 'b

有没有办法在主干中找到渲染视图?我有4种观点 登录、联系、主页和关于
我想知道当前渲染的是哪个视图

假设您正在将所有视图渲染到同一个元素中(否则您可以从元素id知道视图是什么),您可以在创建视图时向视图添加类似“class”的属性。然后可以通过view.options访问该属性

例如:

var LoginView = Backbone.View.extend();

var loginView = new LoginView({ model: new Backbone.Model, el: 'body', class: 'login' });

loginView.render = function() { var content = 'login'; this.$el.html(content) };

loginView.render();

console.log(loginView.options.class) // 'login'
显然,这是一个过于简单的例子,但总体思路应该是可行的。如果您需要更具体的答案,更多的细节或代码示例会有所帮助


如果您还想确保视图实际呈现,只需编写一个方法来检查视图的内容是否与您期望的内容相同

,如果没有更多的设置细节,很难回答这个问题。主干中没有“活动视图”属性或类似的东西,但您可以自己构建一个。您能否发布一些示例代码,说明如何创建/导航视图以提供上下文?最简单的方法是向在初始化函数中触发的每个视图添加一个console.log。我使用的想法是创建另一个变量,并在渲染时填充该变量。可能不是最好的解决方案,但对我来说绝对有效。