Магистральные формы и пользовательский шаблон
Это первый раз, когда я работаю с плагином backbone-форм, и я также новичок в Backbonejs. Я реализую простую форму, но стандартные renderd-формы 'renderd не соответствуют моим потребностям. Читая документацию, выясняется, что я могу установить собственный шаблон подчеркивания, но не могу понять, как отображать метки полей.
Кто-нибудь может мне помочь?
РЕДАКТИРОВАТЬ:
Учитывая следующее:
var form = new Backbone.Form({
template: _.template($('#formTemplate').html()),
schema: {
age: { type: 'Number', title: "Age" },
name: { title: "Name" }
}
});
и следующий шаблон:
<script id="formTemplate" type="text/html">
<form>
<div data-editors="age"><!-- age editor will be added here --></div>
<div data-editors="name"><!-- nameeditor will be added here --></div>
</form>
</script>
Как я могу автоматически создавать метки в Backbone-форме?
Что-то вроде:
<label data-label="age"><!-- I wish the label was added here --></label>
<div data-editors="age"><!-- age editor will be added here --></div>
вычисляется как:
<label for="c1_age">Age</label>
2 ответа
Вы можете проверить документацию метки по этой ссылке: Основные атрибуты - Магистральные формы.
Атрибут, который вы ищете, это заголовок. Описание:
Определяет текст, который появляется в поле формы. Если не определено, по умолчанию используется форматированная версия ключа поля camelCased. Например, firstName становится именем. Это поведение можно изменить, назначив вашу собственную функцию Backbone.Form.helpers.keyToTitle.
Таким образом, вы можете использовать:
var User = Backbone.Model.extend({
schema: {
// CHECK THE ATTRIBUTE 'title' HERE
title: { title: 'Title', type: 'Select', options: ['Mr', 'Mrs', 'Ms'] },
name: { type: 'Text', title: 'Your Name' }
// ...
}
}
Если вы не установите атрибут title, заголовок метки станет ключом поля camelCased.
Для шаблонов вы можете проверить 100% пользовательских форм, которые будут следовать той же логике, поместив метку с последующим вводом, который вы хотите.
РЕДАКТИРОВАТЬ:
Если вы хотите создать только элемент label, я считаю, что это невозможно с магистральными формами. Вы можете найти возможные элементы в определении схемы. Концепция элемента метки заключается в представлении заголовка для другого элемента на экране. Пожалуйста, проверьте документацию на этикетку в MDN. Таким образом, backbone-формы всегда будут размещать метки, но они будут идти вместе с вводом.
Я думаю, что вы можете просто разместить метку в своем шаблоне, чтобы получить поведение, которое вы хотите.
Как видим - ответим в комментарии @evilcelery. Для использования меток в форме с пользовательским шаблоном используйте
<script id="formTemplate" type="text/html">
<form>
<div data-fields="age,name"></div>
</form>
</script>