我需要制作一个包含10个文本字段元素的引导程序表单。
从bootstrap doc,我需要为每个textfield元素提供此代码:
<div class="control-group">
<label class="control-label" for="inputEmail">Email</label>
<div class="controls">
<input type="text" id="inputEmail" placeholder="Email">
</div>
</div>
Em.TextField对象只管理
<input type="text...
我想最小化我的车把形式。
答案 0 :(得分:1)
您可以创建一个包含所有必需引导标记的新视图,并合并内置的Ember.TextField
输入元素。自定义TextField具有添加的label
属性,用于设置表单标签的文本。
自定义TextField:
JS:
App.BootstrapTextFieldView = Ember.View.extend({
templateName: 'bootstrapTextField',
inputElement: null
});
车把:
<script type="text/x-handlebars" data-template-name='bootstrapTextField'>
<div class='control-group'>
<label class="control-label" {{bindAttr for='view.inputElement.elementId'}}>{{view.label}}</label>
<div class="controls">
{{view Ember.TextField valueBinding='view.value' viewName="inputElement"}}
</div>
</div>
</script>
使用新视图
您会使用它与使用普通Ember.TextField
:
<form class="form-horizontal">
{{view App.BootstrapTextFieldView valueBinding='textFieldValue' labelBinding='textFieldLabel'}}
</form>
唯一棘手的部分是在for='..."
上正确设置<label>
属性,因为我们需要获取{{view Ember.TextField ...}}
的自动生成ID。这可以通过使用{{view ...}}
帮助器的the viewName
属性来完成。通过设置{{view App.theViewHere viewName='desiredViewName'
,我们可以访问我们创建的Ember.TextField
实例,并使用for
帮助程序将标签的{{bindAttr...}}
属性设置为视图的ID。