这是我第一次使用骨干表单插件,而且我也是Backbonejs的新手。 我正在实现一个简单的表单,但标准的骨干表单'renderd不符合我的需要。阅读documentation,我可以设置自定义下划线模板,但我无法理解如何渲染字段的标签。
有人可以帮助我吗?
编辑:
考虑以下因素:
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-form构建自动标记?
类似的东西:
<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>
答案 0 :(得分:6)
您可以在此链接中查看标签文档:Main Attributes - Backbone Forms。
您要查找的属性是标题。说明:
定义表单字段中显示的文本。如果未定义,则默认为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% custom forms,它将遵循相同的逻辑,放置标签后跟您想要的输入。
修改强>
如果你只想构建标签元素,我相信骨架形式是不可能的。您可以在Schema Definition找到可能的元素。标签元素的概念是表示屏幕中另一个元素的标题。请检查Label Documentation at MDN。因此,骨干表格总是会放置一个标签,但它会带有输入。
我认为您只需在模板中放置一个标签即可获得所需的行为。
答案 1 :(得分:0)
我们可以看到 - @evilcelery在评论中回答。对于使用自定义模板的表单中的标签:
<script id="formTemplate" type="text/html">
<form>
<div data-fields="age,name"></div>
</form>
</script>