Javascript Backbone.js-ncaught异常:语法错误:函数构造函数:未能编译函数

Javascript Backbone.js-ncaught异常:语法错误:函数构造函数:未能编译函数,javascript,html,backbone.js,underscore.js,Javascript,Html,Backbone.js,Underscore.js,我正在学习这个教程- 我坚持这一部分(视频在我开始出错的部分之后开始): 正如我在错误中看到的,它与下划线.js模板有关 Uncaught exception: SyntaxError: Function constructor: failed to compile function Error thrown at line 637, column 3 in <anonymous function: T.template>(e, t, n) in http://cdnjs.clo

我正在学习这个教程-

我坚持这一部分(视频在我开始出错的部分之后开始):

正如我在错误中看到的,它与下划线.js模板有关

Uncaught exception: SyntaxError: Function constructor: failed to compile function

Error thrown at line 637, column 3 in <anonymous function: T.template>(e, t, n) in http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.4.2/underscore-min.js:
    throw u.source = s, u
called from line 57, column 12 in <anonymous function: success>() in file://localhost/home/andrius/dev/backbone/beginner/index.html:
    var template = _.template($('#user-list-template').html(), {users: users.models}) ;
called from line 442, column 4 in <anonymous function: a.success>(d, e, f) in http://cdnjs.cloudflare.com/ajax/libs/backbone.js/0.9.2/backbone-min.js:
    c && c(b, d)
called via Function.prototype.apply() from line 870, column 5 in <anonymous function: p.Callbacks>(b) in http://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.2/jquery.min.js:
    if (i[h].apply(b[0], b[1]) === !1 && a.stopOnFalse)
called from line 915, column 5 in <anonymous function: fireWith>(a, b) in http://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.2/jquery.min.js:
    return b = b || [], b = [a, b.slice ? b.slice() : b], i && (!d || j) && (e ? j.push(b) : k(b)), this
called from line 3650, column 4 in y(a, c, f, i) in http://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.2/jquery.min.js:
    x.status = a, x.statusText = (c || y) + "", k ? o.resolveWith(m, [s, y, x]) : o.rejectWith(m, [x, y, t]), x.statusCode(r), r = b, j && n.trigger("ajax" + (k ? "Success" : "Error"), [x, l, k ? s : t]), q.fireWith(m, [x, y]), j && (n.trigger("ajaxComplete", [x, l]), --p.active || p.event.trigger("ajaxStop"))
called from line 3879, column 6 in <anonymous function: d>(a, e) in http://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.2/jquery.min.js:
    l && f(h, j, l, k)

Error initially occurred at line 634, column 3 in <anonymous function: T.template>(e, t, n) in http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.4.2/underscore-min.js:
    var o = new Function(n.variable || "obj", "_", s)
called from line 57, column 12 in <anonymous function: success>() in file://localhost/home/andrius/dev/backbone/beginner/index.html:
    var template = _.template($('#user-list-template').html(), {users: users.models}) ;
called from line 442, column 4 in <anonymous function: a.success>(d, e, f) in http://cdnjs.cloudflare.com/ajax/libs/backbone.js/0.9.2/backbone-min.js:
    c && c(b, d)
called via Function.prototype.apply() from line 870, column 5 in <anonymous function: p.Callbacks>(b) in http://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.2/jquery.min.js:
    if (i[h].apply(b[0], b[1]) === !1 && a.stopOnFalse)
called from line 915, column 5 in <anonymous function: fireWith>(a, b) in http://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.2/jquery.min.js:
    return b = b || [], b = [a, b.slice ? b.slice() : b], i && (!d || j) && (e ? j.push(b) : k(b)), this
called from line 3650, column 4 in y(a, c, f, i) in http://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.2/jquery.min.js:
    x.status = a, x.statusText = (c || y) + "", k ? o.resolveWith(m, [s, y, x]) : o.rejectWith(m, [x, y, t]), x.statusCode(r), r = b, j && n.trigger("ajax" + (k ? "Success" : "Error"), [x, l, k ? s : t]), q.fireWith(m, [x, y]), j && (n.trigger("ajaxComplete", [x, l]), --p.active || p.event.trigger("ajaxStop"))
called from line 3879, column 6 in <anonymous function: d>(a, e) in http://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.2/jquery.min.js:
    l && f(h, j, l, k)
未捕获异常:语法错误:函数构造函数:未能编译函数
中(e,t,n)第3列第637行抛出错误http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.4.2/underscore-min.js:
抛出u.source=s,u
从中()的第57行第12列调用file://localhost/home/andrius/dev/backbone/beginner/index.html:
var template=35;.template($('#用户列表模板').html(),{users:users.models});
从第442行第4列(d,e,f)中调用http://cdnjs.cloudflare.com/ajax/libs/backbone.js/0.9.2/backbone-min.js:
c&c(b,d)
通过中(b)第5列第870行的Function.prototype.apply()调用http://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.2/jquery.min.js:
if(i[h].apply(b[0],b[1])==!1&&a.stopOnFalse)
从中的(a,b)第915行第5列调用http://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.2/jquery.min.js:
返回b=b | |[],b=[a,b.slice?b.slice():b],i&(!d | | j)&&(e?j.push(b):k(b)),此
从第3650行第4列y(a,c,f,i)调用http://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.2/jquery.min.js:
x、 状态=a,x.statusText=(c | | y)+”,k?o、 解析为(m[s,y,x]):o.rejectWith(m[x,y,t])、x.statusCode(r)、r=b、j和n.trigger(“ajax”+(k?“Success”):“Error”)、[x,l,k?s:t])、q.fireWith(m[x,y])、j和(n.trigger(“ajaxComplete”、[x,l])、-p.active p.event.trigger(“ajaxStop”))
从第3879行第6列(a,e)中调用http://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.2/jquery.min.js:
l&f(h,j,l,k)
错误最初发生在第634行中的第3列(e、t、n)http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.4.2/underscore-min.js:
var o=新函数(n.变量| | |“obj”,“|”,s)
从中()的第57行第12列调用file://localhost/home/andrius/dev/backbone/beginner/index.html:
var template=35;.template($('#用户列表模板').html(),{users:users.models});
从第442行第4列(d,e,f)中调用http://cdnjs.cloudflare.com/ajax/libs/backbone.js/0.9.2/backbone-min.js:
c&c(b,d)
通过中(b)第5列第870行的Function.prototype.apply()调用http://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.2/jquery.min.js:
if(i[h].apply(b[0],b[1])==!1&&a.stopOnFalse)
从中的(a,b)第915行第5列调用http://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.2/jquery.min.js:
返回b=b | |[],b=[a,b.slice?b.slice():b],i&(!d | | j)&&(e?j.push(b):k(b)),此
从第3650行第4列y(a,c,f,i)调用http://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.2/jquery.min.js:
x、 状态=a,x.statusText=(c | | y)+”,k?o、 解析为(m[s,y,x]):o.rejectWith(m[x,y,t])、x.statusCode(r)、r=b、j和n.trigger(“ajax”+(k?“Success”):“Error”)、[x,l,k?s:t])、q.fireWith(m[x,y])、j和(n.trigger(“ajaxComplete”、[x,l])、-p.active p.event.trigger(“ajaxStop”))
从第3879行第6列(a,e)中调用http://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.2/jquery.min.js:
l&f(h,j,l,k)
我的代码(在我的代码和视频中看不到任何差异…)


Backboutorials.com初学者视频
用户管理器

名字 姓 年龄 $.ajaxPrefilter(函数(选项、原始选项、jqXHR){ options.url=http://backbonejs-beginner.herokuapp.com“+options.url; }); var Users=Backbone.Collection.extend({ url:“/用户” }); var UserList=Backbone.View.extend({ el:“.page”, 渲染:函数(){ var=这个; var users=新用户(); users.fetch({ 成功:函数(){ var template=35;.template($('#用户列表模板').html(),{users:users.models}); 即.$el.html(模板); } }) } }); var Router=Backbone.Router.extend({ 路线:{ “家” } }); var userList=new userList(); var router=新路由器(); 路由器.on('route:home',函数(){ userList.render() }); Backbone.history.start();
问题似乎正在关闭您的每个循环。您应该有

谢谢您的关注。这就是问题所在。啊,那些括号……)没问题!:)你的IDE应该给你关于这类东西的警告。减少头痛!是 啊我想我需要更好的工具来实现这一点,以便看到这样的错误:)
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>BackboneTutorials.com Beginner Video</title>
  <link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.1.1/css/bootstrap.min.css">
</head>
<body>
  <div class="container">
    <h1>User Manager</h1>
    <hr />
    <div class="page"></div>
  </div>

  <script type="text/template" id="user-list-template">
    <table class="table striped">
      <thead>
        <tr>
          <th>First Name</th>
          <th>Last Name</th>
          <th>Age</th>
          <th></th>
         </tr>
       </thead>
       <tbody>
        <% _.each(users, function(user) { %>
          <tr>
            <td><%= user.get('firstname')  %></td>
            <td><%= user.get('lastname')  %></td>
            <td><%= user.get('age')  %></td>
            <td></td>
          </tr>
        <% )}; %>
       </tbody>
     </table>
  </script>

  <script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.2/jquery.min.js" type="text/javascript"></script>
  <script src="http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.4.2/underscore-min.js" type="text/javascript"></script>
  <script src="http://cdnjs.cloudflare.com/ajax/libs/backbone.js/0.9.2/backbone-min.js"></script>
  <script>

    $.ajaxPrefilter( function( options, originalOptions, jqXHR ) {
      options.url = 'http://backbonejs-beginner.herokuapp.com' + options.url;
    });

    var Users = Backbone.Collection.extend({
      url: '/users'
    });

    var UserList = Backbone.View.extend({
      el: '.page',
      render: function () {
        var that = this;
        var users = new Users();
        users.fetch({
          success: function () {
            var template = _.template($('#user-list-template').html(), {users: users.models}) ;
            that.$el.html(template);
          }
        })        
      }
    });

    var Router = Backbone.Router.extend({
      routes: {
        '': 'home'
      }
    });

    var userList = new UserList();

    var router = new Router();
    router.on('route:home', function () {
      userList.render()
    });

    Backbone.history.start();

  </script>
</body>