मैं बैकबोन जेएस के साथ खेलने की कोशिश कर रहा हूं और अब तक सबकुछ समझ में आता है और आसानी से काम करता है।बैकबोन जेएस देखें घटनाएं फायरिंग नहीं?
हालांकि नीचे दिए गए कोड के साथ, मेरी कस्टम घटनाएं फायरिंग प्रतीत नहीं होती हैं। नीचे दिए गए कोड में कुछ भी क्यों खड़ा है कि यह क्यों हो सकता है? क्या मुझे दृश्य में कुछ भी "प्रारंभ करना" चाहिए? कोड/संरचना पर कोई अन्य पॉइंटर्स भी ठंडा होगा। नीचे मेरा पूरा जेएस/एचटीएमएल है।
जे एस
var Todo = Backbone.Model.extend({});
var TodoCollection = Backbone.Collection.extend({
model: Todo,
url: '/Home/Todos'
});
var AppView = Backbone.View.extend({
// where it should listen, required?
el: $(".content"),
events: {
"keypress #new-todo": "enter"
},
initialize: function() {
// _.bindAll(this, "render", "createOnEnter");
// this.collection.bind("all", this.render);
},
hi: function() {
alert('ohai');
},
render: function() {
var lis = '';
$.each(this.collection.models, function() {
lis += '<li>' + this.get('Text') + '</li>';
});
$('#todo-list').append(lis);
return this.el;
},
enter: function (e) {
alert('hi');
}
});
var TodoController = Backbone.Controller.extend({
routes: {
"": "todos"
},
initialize: function (options) { },
todos: function() {
var todolist = new TodoCollection();
todolist.fetch({
success: function (data) {
var appview = new AppView({ collection: data });
appview.render();
}
});
}
});
$(function() {
window.app = new TodoController();
Backbone.history.start();
});
एचटीएमएल
<div id="todoapp">
<div class="content">
<input id="new-todo" placeholder="What needs to be done?" type="text" />
<div id="todos">
<ul id="todo-list">
</ul>
</div>
<a href="#">say hey</a>
</div>
</div>
जवाब के लिए धन्यवाद। मैं अभी भी थोड़ा उलझन में हूं कि उस बिंदु पर डोम क्यों नहीं बनाया जाएगा। मैं नीचे नियंत्रक को लात मारता हूं और इसे एक दस्तावेज़ तैयार कॉल के अंदर लपेटता हूं। तब मेरे नियंत्रक ऐप व्यू को समाचार देते हैं, इसलिए उस समय यह पहली बार 'एल' कहलाएगा? – aherrick
var AppView = Backbone.View.extend ({}) का मूल्यांकन किया जाता है क्योंकि ब्राउजर इसे पढ़ता है। आप दस्तावेज़ तैयार कॉल में इसे तुरंत चालू करते हैं लेकिन चूंकि _el_ कोई फ़ंक्शन नहीं है, इसलिए इसका विस्तार विस्तार के हिस्से के रूप में किया जाएगा। – Julien
कोई बता सकता है कि बैकबोन.जेएस टोडो उदाहरण को पैरामीटर में पास करने की आवश्यकता क्यों नहीं है जब वे अपना ऐप व्यू बनाते हैं? उनके पास todo.js के शीर्ष पर यह टिप्पणी है, "// jQuery.ready' का उपयोग करके, डोम तैयार होने के बाद एप्लिकेशन को लोड करें:", लेकिन मुझे यह सुनिश्चित करने के लिए कुछ भी नहीं दिख रहा है कि डोम तैयार है। धन्यवाद। – Quentamia