2013-04-25 71 views
0

任何一个可以帮助我找到我们的问题,到底是怎么回事我的代码..我的JavaScript代码抛出一个SyntaxError(意外标记<)

我得到的错误为:

Uncaught SyntaxError: Unexpected token < 

我的代码是在这里:

$(function() { 

    var userDetails=[ 
     {firstName:'Lakshmi', lastName:'Narayanan',age:32}, 
     {firstName:'Harish', lastName:'Manickam',age:28}, 
     {firstName:'Madan', lastName:'Gopal',age:27} 
    ] 

    var userModel = Backbone.Model.extend({ 
     defaults:{ 
      firstName:"", 
      lastName:"", 
      age:"" 
     } 
    }); 

    var userList = Backbone.Collection.extend({ 
     model:userModel 
    }); 

    var userView = Backbone.View.extend({ 
     tagName:"tr", 
     className:"userList", 
     template: $("#listTempalate").html(), 
     render:function(){ 
      var temp = _.template(this.template); 
      this.$el.html(temp(this.model.toJSON())); 
      return this; 
     } 
    }); 

    var usersView = Backbone.View.extend({ 
     el:"tbody", 
     initialize:function(){ 
      this.collection = new userList(userDetails); 
      this.render(); 
     }, 
     render:function(){ 
      var that = this; 
      _.each(this.collection.models, function(item){ 
       that.$el.append(new userView({model:item}).render().el); 
      }) 
     } 
    }); 

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

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

    Backbone.history.start(); 

}); 

我的HTML:

<!doctype html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=Edge,Chrome=1" /> 
    <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1"> 
    <title>User Manager</title> 
    <link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css" rel="stylesheet"> 
</head> 
<body> 
    <div class="container"> 
     <h1>User Manager</h1> 
     <hr> 
     <div class="page"> 
      <table class="table striped"> 
       <thead> 
        <tr> 
         <th>First Name</th> 
         <th>Last Name</th> 
         <th>Age</th> 
         <th>Edit</th> 
        </tr> 
       </thead> 
       <tbody id="insertRows"> 

       </tbody> 
      </table> 
     </div> 
    </div> 
    <script id="listTempalate" type="text/template"> 
     <td><%= firstName %></td> 
     <td><%= lastName %></td> 
     <td><%= age %></td> 
     <td><%= <a hre="#/edit/<%= user.id %>" class="btn">Edit</a></td> 
    </script> 
    <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
    <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.4.4/underscore-min.js"></script> 
    <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/backbone.js/1.0.0/backbone-min.js"></script> 
    <script type="text/javascript" src="js/userManager.js"></script> 
</body> 
</html> 

说真的,我无法在这里找到我的问题来解决它。以及任何一个建议我找网上Backbone.js的问题..

所以让我继续检查我的代码..提前

谢谢..

+1

考虑将标题从“如何解决此问题”更改为描述问题的内容。 – Jonast92 2013-04-25 14:03:37

+0

在HTML中你是如何包含一些内联脚本标签的? – shyam 2013-04-25 14:03:53

+0

确保你的缩进是正确的,如果你没有在任何地方同样缩进,调试器有时会决定提出一些无意义的错误。 – Jonast92 2013-04-25 14:04:46

回答

2

敢肯定这是做这条线在你的HTML

<td><%= <a hre="#/edit/<%= user.id %>" class="btn">Edit</a></td> 

您打开<%=,然后再次打开它/edit/<%=我认为这是造成问题的原因。即使打开它两次是允许的,你还没有添加最后的%>到线上。

玩弄,让我们知道它是如何去。

编辑

试试这个

<td> <a href="#/edit/<%= user.id %>" class="btn">Edit</a></td> 

你应该不需要包裹在<%%>标签整个事情,只是要输出的部分。

+0

好的,谢谢。让我试试这个... – 3gwebtrain 2013-04-25 14:21:41

+0

我转换为这样的:​​<%= Edit%>但没有运气.. – 3gwebtrain 2013-04-25 14:23:22

+0

在查看一些其他在线模板示例后更新了答案。给那一枪。 – Turnerj 2013-04-25 14:28:08

相关问题