无法阅读财产&替换'为null。骨干js

时间:2015-07-12 15:55:55

标签: javascript jquery symfony backbone.js

我正在

doThisThing()

这是我认为错误发生的js的一部分

Uncaught TypeError: Cannot read property 'replace' of null

这是我的index.html文件

var DirectoryView = Backbone.View.extend({
        $el: $("#contacts"),

        initialize: function () {
            this.collection = new Directory(contacts);

            this.render();
        },

        render: function () {
            var that = this;
            _.each(this.collection.models, function (item) {
                that.renderContact(item);
            }, this);
        },

        renderContact: function (item) {
            var contactView = new ContactView({
                model: item
            });
            this.$el.append(contactView.render().el);
        }
    });

错误的完整堆栈跟踪

{% extends 'base.html.twig' %}

    {% block javascripts %}

      {{ parent() }}



    {% endblock %}
    {% block body %}
      <meta charset="UTF-8" />
      <title>Backbone.js Web App changed</title>


      <div id = 'contacts'>
      <script id = "contactTemplate" type="text/template">
        <img src = "<%= photo %>" alt ="<%= name %>">
        <h1>Name : <%= name %><span><%= type %></span></h1>
        <div><%= address%></div>
        <dl>
          <dt>Tel: </dt><dd> <%= tel%></dd>
          <dt>Email: </dt><dd> <%= email%></dd>
        </dl>
      </script>
      </div>
  {% endblock %}

这是我的完整app.js文件

c.template @ underscore-min.js:24Backbone.View.extend.render @ 94260d1_app_3.js:34Backbone.View.extend.renderContact @ 94260d1_app_3.js:62(anonymous function) @ 94260d1_app_3.js:54c.each.c.forEach @ underscore-min.js:8Backbone.View.extend.render @ 94260d1_app_3.js:53Backbone.View.extend.initialize @ 94260d1_app_3.js:48e.View @ backbone-min.js:23d @ backbone-min.js:27(anonymous function) @ 94260d1_app_3.js:67(anonymous function) @ 94260d1_app_3.js:69

我正在使用symfony和twig模板。 这是教程 http://code.tutsplus.com/tutorials/build-a-contacts-manager-using-backbonejs-part-1--net-24277

1 个答案:

答案 0 :(得分:2)

您创建视图$el的语法已关闭,而您只需分配el

el: '#contacts`

骨干将自动缓存$el中的jQuery元素。

这里只是jsbin的链接,只是改变了。