我目前正在使用Angular 1.5
库,并希望为简单的文本框创建一个组件,如下所示。
组件 JS
'use strict';
angular
.module('components')
.component('inputBox', {
bindings: {
label: '@',
name: '@',
type: '@',
classes: '@',
placeholder: '@',
maxlength: '@'
},
controllerAs: 'field',
templateUrl: 'app/components/inputBox.html'
});
组件模板
<input type="{{field.type || 'text'}}"
class="form-control {{field.classes}}"
id="{{field.name}}"
name="{{field.name || 'unnamed'}}"
maxlength="{{field.maxlength}}"
placeholder="{{field.placeholder}}" />
在所有模板中使用。
<input-box
label="Enter an account"
name="accountNumber"
type="number"
classes="form-control"
placeholder="Account Number"
maxlength="20"
// directives
ng-model="accountNumber"
ng-custom1="value1"
ng-custom2="value2"
ng-custom-validator="value4" />
我有两个问题,低于我需要最佳实践的地方。
- 我想在使用模板中扩展所有指令,而不是组件的一部分。
这是最佳实践
@
,或者=
但我很好理解这个选项。一个。“@”(文本绑定/单向绑定)
湾。“=”(直接模型绑定/双向绑定)
C。“&”(行为绑定/方法绑定)
为什么采用这种方法?
我有大约 27 种输入类型的表单。我想创建一个包含所有字段标签、输入和错误容器的组件。