我需要把事件聲明方式以下socketio事件註冊socketio自定義事件在backbonejs:如何使用browserify(CommonJS的)
- 插座連接
- 插座上斷開
- 套接字消息
目前我放在module.exports之外。我使用NPM,杯和browserify我的主幹應用
下面的代碼工作正常。我只是想在這聲明的module.exports
var $ = require('jquery'),
Backbone = require('backbone'),
homeTemplate = require("../../templates/home/homeTemplate.hbs"),
socket = require('socket.io-client')('http://localhost:8080');
socket.on('connect', function(){
$('#incomingChatMessages').append($('<li>Connected</li>'));
});
socket.on('message', function(message) {
$('#incomingChatMessages').append($('<li></li>').text(message));
});
Backbone.$ = $;
module.exports = Backbone.View.extend({
el: $("#page"),
initalize: function(){
},
render: function(){
console.log("home view");
$('.navbar-collapse li').removeClass('active');
$('.navbar-collapse li a[href="#"]').parent().addClass('active');
this.$el.html(homeTemplate);
},
events: {
'keypress #outgoingChatMessage': 'processOutgoingMessage'
},
processOutgoingMessage: function(e) {
if(e.which == 13) {
event.preventDefault();
socket.send($('#outgoingChatMessage').val());
$('#incomingChatMessages').append($('<li></li>').text($('#outgoingChatMessage').val()));
$('#outgoingChatMessage').val('');
}
}
});
內部的視圖功能,使用'這一點。$()'而不是全局jQuery函數'$()'。另外,緩存你的元素:'this。$ incoming = this。$('#incomingChatMessages');'避免一次又一次地搜索。 –