Backbone View无法加载

时间:2014-10-09 23:29:14

标签: javascript backbone.js backbone-views

我为可能是一个非常简单的错误道歉,但我的骨干视图没有加载。代码在这个小提琴中运行良好: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行。我认为这意味着_未定义。这是一个正确的假设,我该如何解决?

1 个答案:

答案 0 :(得分:2)

将您的脚本放在#body-js

之后

Backbone没有找到dom元素来查看它。

因为你的代码是在dom准备好之前执行的。

jsFiddle的情况并非如此。它已执行onDomready

您还需要在第html(lang='en')行之后再制作一个级别。

我终于找到了你的问题......你的下划线太旧了(1.1.6)。

使用最新版本(1.7.0)。