【发布时间】:2017-03-02 15:50:44
【问题描述】:
我是骨干新手。我只想了解全局事件触发并为每个事件绑定回调。我试过这样...
landing.view.js
'use strict';
var $ = require('jquery');
var Backbone = require('backbone');
var _ = require('underscore');
var tpl = require('text!components/landing-page/templates/landing-page.html');
return Backbone.View.extend({
el: '.view-container',
template: _.template($(tpl).html()),
events:{
'click .btn-show': 'showUsersListHandler'
},
initialize: function(){
this.render();
},
render: function(){
$(this.el).html(this.template);
return this;
},
showUsersListHandler: function(evt){
Backbone.trigger('userPage', {trigger:true});
}
});
another.view.js
'use strict';
var Backbone = require('backbone');
var _ = require('underscore');
var $ = require('jquery');
var tpl = require('text!components/user-logs-listing/templates/user-logs-listing-tpl.html');
return Backbone.View.extend({
el: '.users-list-container',
template: _.template($(tpl).html()),
initialize: function(){
this.render();
},
render: function(){
$(this.el).html(this.template);
}
});
应用路由器
'使用严格';
var $ = require('jquery');
var Backbone = require('backbone');
var viewContainer = require('inits/utils');
var landingView = require('components/landing-page/views/landing-page');
var userListingView = require('components/user-logs-listing/views/user-logs-listing.view');
return Backbone.Router.extend({
routes: {
"": "landing",
"usersList": "usersPage"
//'*path': 'defaultRoute'
},
initailize: function(){
Backbone.listenTo(Backbone, 'userPage', this.usersPage)
},
landing: function(){
viewContainer.createContainer('view-container');
new landingView();
},
usersPage: function(){
//$('.view-container').remove();
viewContainer.createContainer('users-list-container');
new userListingView();
}
});
如果我点击登陆视图中的按钮,它应该会触发“userPage”并导航到#UsersPage。问题是如何触发和绑定全局事件的回调????帮我找到正确的解决方案!!!谢谢。
【问题讨论】:
-
全局事件是什么意思?
-
正如我在问题中提到的,如果我没记错的话,当我在登陆视图中触发 'userPage' 事件时,应该呈现另一个视图。我已在路由器中附加了事件响应,但它不起作用?
标签: javascript jquery backbone.js