Backbone 查看脚本错误

Backbone view script error

为什么我会遇到脚本错误?

最初我想问的是关于在视图初始化期间传递自定义变量的问题,但我最终还是问到了这个问题。

JSFiddle 对于这个

var ddd = Backbone.View.extend({
  el: "#sd",
  initialize: function() {
    console.log("rrr");
  },
  render: function() {

  }
});


console.log("dd");
var t = new ddd();
console.log(t);
<script src="http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.1.7/underscore-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.3/backbone-min.js"></script>

<div id="sd">
  <p id="eee">

  </p>
</div>

如果您想将自定义变量传递给您的 backbone 视图,只需这样做。

在你看来初始化

initialize: function(options){
    this.err= options.err;
},

当您创建视图的新实例时,只需像这样将您的变量作为参数传递

制作新的视图实例

var err = 'somthing';
var t = new ddd({err: err})

固定版本

您的代码应如下所示

<html>
<head> 
    <script   src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.3/backbone-min.js"></script>
</head>
<body>
    <div id="sd">
        <p id="eee">

        </p>
    </div>
    <script>
        var PN = Backbone.View.extend({
            el: $('#sd'),
            initialize: function(options) {
                    this.eee = options.eee
            },
            render: function() {
                 console.log(this.eee);
                    return this;
            }
        });

        var v = new PN({eee: 'somthing'});
        v.render();
    </script>
</body>
</html>

因为您使用的 underscore.js 的 1.1.7 版本较旧。 Backbone 1.3.3 使用更高版本的 underscore.js。因为 backbone 依赖于 underscore.js 。希望这有帮助

var ddd = Backbone.View.extend({
  el: "#sd",
  initialize: function() {
    console.log("rrr");
  },
  render: function() {

  }
});


console.log("dd");
var t = new ddd();
console.log(t);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.3/backbone-min.js"></script>

<div id="sd">
  <p id="eee">

  </p>
</div>