내 앱을 구조화하기 위해 backbone.js와 함께 require.js를 사용하고 있습니다. 내보기 중 하나에서 :on 키 누르기가 jquery에 의해 트리거되면 내 모델이 정의되지 않음
키를 누를 때 이벤트가 JQuery와 및 함수가 호출 sendMessage 첨부에 의해 트리거됩니다define(['backbone', 'models/message', 'text!templates/message-send.html'], function (Backbone, Message, messageSendTemplate) {
var MessageSendView = Backbone.View.extend({
el: $('#send-message'),
template: _.template(messageSendTemplate),
events: {
"click #send": "sendMessage",
"keypress #field": "sendMessageOnEnter",
},
initialize: function() {
_.bindAll(this,'render', 'sendMessage', 'sendMessageOnEnter');
this.render();
},
render: function() {
this.$el.html(this.template);
this.delegateEvents();
return this;
},
sendMessage: function() {
var Message = Message.extend({
noIoBind: true
});
var attrs = {
message: this.$('#field').val(),
username: this.$('#username').text()
};
var message = new Message(attrs);
message.save();
/*
socket.emit('message:create', {
message: this.$('#field').val(),
username: this.$('#username').text()
});
*/
this.$('#field').val("");
},
sendMessageOnEnter: function (e) {
if (e.keyCode == 13) {
this.sendMessage();
}
}
});
return MessageSendView;
});
-이 뷰가 처음 require.js에 의해로드 될 때 사용할 수 있지만, 어떤 이유로 메시지 모델은 정의되지 않은 때문이다 . 어떤 힌트? 감사합니다
, 인수로 객체 변수로 전송됩니다. 그래서'Message : Message '를 코드에 추가하고'Message' 대신'this.Message'를 호출하십시오. 그게 작동하는지 확인하십시오. – RustyToms