Backbone传递值来查看

时间:2015-09-03 23:01:20

标签: javascript backbone.js

我有index.html包含

<div id="content">
     <script type="text/template" id="App1">
         Name: <%=name%><br />
         Company: <%=company%>
     </script>
</div>

script.js包含

var App1 = Backbone.View.extend({
     initialize: function(){
         this.render();
     },
     render: function(){
         var obj = {name: 'John', company: 'ABC Corp'};
         var template1 = _.template($('#App1').html(), obj);
         this.$el.html(template1);
     }
});

var app1 = new App1({
    el: '#content'
});

但是,由于公司变量未定义,我收到错误。

造成这种情况的原因是什么?

1 个答案:

答案 0 :(得分:2)

以下是工作版本:

var App1 = Backbone.View.extend({
     initialize: function(){

         this.render();

     },
     render: function(){
         var obj = {name: 'John', company: 'ABC Corp'};
         var template1 = _.template($('#App1').html());

         this.$el.html(template1(obj));

     }
});

var app1 = new App1({
    el: '#App1'
});

错误是您定义和使用模板的方式。看看这个:http://underscorejs.org/#template