2016-10-22 21 views
0

我想我已经正确声明了tagName?并将其正确放置在render方法下,但不知何故标签是div而不是h1。backbone.js标签名声明后没有效果

https://jsfiddle.net/b01vtfnh/

 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:'h1'; //this line won't work 

       var li_person = this.model.get('name') + ', ' + this.model.get('age') + 
       ' (' + this.model.get('job') + ')'; 

       this.$el.html(li_person) 
       return this; 
      } 
     }); 

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

作为rockerest已回答,您没有将* tagName *放置在渲染方法下但在其内部 – Mustaghees

+3

是一个人在几个帐户下发帖还是一群学生刚刚开始相同的任务?在过去几天里,我几次在'render''错误的顶部看到过这个“'tagName:'li''。同样对于'var li_person'(AKA'var html_content')表达式。 “ –

+1

组赋值:P –

回答

3

tagName是视图的属性,而不是 - 不知何故 - 的渲染功能。这应该会引发语法错误。正确的结构将是:

initialize: function(){ 
    this.render(); 
}, 
tagName: 'h1', 
render: function(){ 
... 

我要离开原来如此的评论是有意义的,但事实证明,function(){ thing: "stuff"; }实际上是有效的语法。无论如何,在上下文中以及使用它的方式中,它被定位在那里是不正确的。

+3

”这应该会引发语法错误,如下所示。“不,这是[_label_](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/label)声明。 – undefined

+0

今天我了解了标签。多么模糊!我在打电话,或者我想我会看到它没有错误。 – rockerest