#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. Сегодня я узнал о метках. Как непонятно! Я нахожусь на своем телефоне, иначе, я полагаю, я бы увидел, что это не ошибка.