替换 backbone.js 中的未定义

replace of undefined in backbone.js

我只想将模型数据绑定到 DOM。但到目前为止,我得到了未定义的替换错误。出了点问题。

这是我的script.js

<script type="text/javascript">
    var Person = Backbone.Model.extend({
        defaults:{
            name:"",
            age:20,
            job:'jobless'
        }
    });

    var person1 = new Person({
        name:"Sony",
        age: 30,
        job: "Teacher"
    });

    var PersonView = Backbone.View.extend({
        initialize: function(){
            this.render();
        },
        render: function(){
            tagName:'li';
            var html_content = this.model.get('name') + ', ' + this.model.get('age') + 
            ' (' + this.model.get('job') + ')';
            var template = _.template($('#container_template').html(this),{})
            this.$el.html(template);
        }
    });

    var person_view = new PersonView({model:person1});


</script>

我的 bodo 标签中有一个这样的模板

<script type="text/template" id="container_template">

        </script>

使用模板

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>


 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="http://underscorejs.org/underscore-min.js"></script>
<script src="http://backbonejs.org/backbone-min.js"></script>

<script type="text/template" id="container_template">
<li><%=name%></li>
<li><%=age%></li>
<li><%=job%></li> 

        </script>

<script type="text/javascript">
    var Person = Backbone.Model.extend({
        defaults:{
            name:"",
            age:20,
            job:'jobless'
        }
    });

    var person1 = new Person({
        name:"Sony",
        age: 30,
        job: "Teacher"
    });

    var PersonView = Backbone.View.extend({
      tagName:'ul',
        initialize: function(){
            this.render();
        },
        render: function(){
            var template = _.template($('#container_template').html());
            var hi= template(this.model.toJSON());
            this.$el.html(hi);
            return this;
        }
    });

    var person_view = new PersonView({model:person1});
$("body").html(person_view.el);

</script>

</body>
</html>

没有模板

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>


 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="http://underscorejs.org/underscore-min.js"></script>
<script src="http://backbonejs.org/backbone-min.js"></script>



<script type="text/javascript">
    var Person = Backbone.Model.extend({
        defaults:{
            name:"",
            age:20,
            job:'jobless'
        }
    });

    var person1 = new Person({
        name:"Sony",
        age: 30,
        job: "Teacher"
    });

    var PersonView = Backbone.View.extend({
      tagName:'ul',
        initialize: function(){
            this.render();
        },
        render: function(){

            var entry = document.createElement('li');
            firstname=this.model.get('name');
            entry.appendChild(document.createTextNode(firstname));
            this.$el.html(entry);
            return this;
        }
    });

    var person_view = new PersonView({model:person1});
$("body").html(person_view.el);

</script>

</body>
</html>