未捕获的TypeError:无法调用null的方法'replace'

时间:2012-05-18 20:52:49

标签: javascript jquery backbone.js underscore.js

如果我在Chrome JS控制台上键入“_.template($('#pranks-list')。html())”它也能正常工作

>> _.template($('#pranks-list').html())
function (a){return e.call(this,a,b)}

app.js     //观看次数

window.PranksListView = Backbone.View.extend({

    template: _.template($('#pranks-list').html())
});

的index.html                                  
        

  <script type="text/html" id="pranks-list">
    <li><a href='#pranks/<%= id %>'><%= name %></a></li>
  </script>

  </body>

为什么我在这一行上出现这个错误?

template: _.template($('#pranks-list').html())

1 个答案:

答案 0 :(得分:15)

在没有看到整个代码的情况下很难分辨,但是你可能在创建dom并且节点在那里之前尝试运行_.template($('#pranks-list').html())。 通常,在准备好模板变量时,在渲染时渲染模板是一种很好的做法:

_.template($('#pranks-list').html(), {id: 'foo', name: 'bar'});