backbone.js标记名称在声明后无效

时间:2016-10-22 07:17:33

标签: javascript backbone.js

我认为我已正确声明了tagName?并且它在render方法下正确放置,但不知何故标签是div而不是h1。

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)

1 个答案:

答案 0 :(得分:3)

tagName是视图的属性,而不是 - 某种方式 - 是渲染函数的属性。这应该抛出写入的语法错误。正确的结构将是:

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

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