我为可能是一个非常简单的错误道歉,但我的骨干视图没有加载。代码在这个小提琴中运行良好:http://jsfiddle.net/v9suvj3m/1/但是在我的代码中它不起作用。我假设我在jade文件中包含脚本的地方犯了错误,或者我不等待在js中加载某些东西?如果我在定义myview触发器之前插入警报,则会发出警报,但之后没有任何内容。
编辑以考虑评论。主要问题仍未解决。
index.jade
doctype html
html(lang='en')
head
link(rel="stylesheet" type="text/css" href="styles/main.css")
title Homepage
body
#body-js
script(src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js")
script(src="http://ajax.cdnjs.com/ajax/libs/underscore.js/1.1.6/underscore-min.js")
script(src="http://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.2/backbone-min.js")
script(type='text/javascript' src='scripts/main.js')
scrips / main.js
var myview, view;
myview = Backbone.View.extend({
initialize: function() {
return $("#body-js").html("hello");
}
});
view = new myview({
el: '#body-js'
});
编辑:使用非缩小版骨干,我看到错误位于if (protoProps && _.has(protoProps, 'constructor')) {
- 第1538行。我认为这意味着_
未定义。这是一个正确的假设,我该如何解决?
答案 0 :(得分:2)
将您的脚本放在#body-js
。
Backbone没有找到dom元素来查看它。
因为你的代码是在dom准备好之前执行的。
jsFiddle的情况并非如此。它已执行onDomready
。
您还需要在第html(lang='en')
行之后再制作一个级别。
我终于找到了你的问题......你的下划线太旧了(1.1.6)。
使用最新版本(1.7.0)。