backbone.js имя тега не имеет эффекта после объявления

#javascript #backbone.js

#javascript #backbone.js

Вопрос:

Я думаю, что я правильно объявил tagName? и оно правильно размещено в render method, но почему-то тег является 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. как ответил rockerest, вы поместили tagName не под методом рендеринга, а внутри него

2. Один человек публикует под несколькими учетными записями или группа студентов просто начала одно и то же задание? Я видел эту ошибку » tagName: 'li' вверху render » несколько раз за последние несколько дней. Аналогично для этого var li_person (ОН ЖЕ var html_content ) выражения.

3. назначение группы: P

Ответ №1:

tagName является свойством представления, а не — каким-либо образом — функции рендеринга. Это должно выдать синтаксическую ошибку, как написано. Правильная структура была бы:

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

Я оставляю оригинал, чтобы комментарии имели смысл, но оказывается, что function(){ thing: "stuff"; } это действительно допустимый синтаксис. Независимо от того, в контексте и способе его использования, неправильно, чтобы оно было расположено там.

Комментарии:

1. «Это должно выдать синтаксическую ошибку, как написано». Нет, это оператор label .

2. Сегодня я узнал о метках. Как непонятно! Я нахожусь на своем телефоне, иначе, я полагаю, я бы увидел, что это не ошибка.