javascript - 主干 View 未加载

标签 javascript backbone.js backbone-views

对于一个可能非常简单的错误,我深表歉意,但我的主干 View 未加载。该代码在这个 fiddle 中运行良好: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')

脚本/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 行。我认为这意味着_ 的定义不足。这是一个正确的假设吗?我该如何解决它?

最佳答案

将脚本放在 #body-js 之后。

Backbone 找不到 dom 元素来生成其 View 。

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

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

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

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

使用最新版本(1.7.0)。

关于javascript - 主干 View 未加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26289600/

相关文章:

javascript - 平移-旋转 : SVG not rotating around center even though translated:

javascript - 单击模板中的按钮后如何运行 Django View 功能

javascript - 如何在 ng-repeat 范围内创建属性

backbone.js - 主干多路由器陷阱 - 子路由器处理程序未调用

javascript - Backbone js模板未通过动态jsp加载

javascript - Backbone.js 更改事件未触发

javascript - SONAR 无法发布 Istanbul 尔报告的代码覆盖率

javascript - jQuery 插件 select2 的 data-* 属性与 Backbone 兼容吗?

backbone.js - 如何在 Backbone 中绑定(bind)更改事件?

backbone.js - 主干 View 单击复选框监听器