【发布时间】:2016-04-19 18:00:10
【问题描述】:
我目前正在使用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" />
我有两个问题,我需要最佳实践。
- 我希望在使用模板中扩展所有指令,而不是组件的一部分。
-
@或=是最佳实践,但我对此选项非常了解。一个。 “@”(文本绑定/单向绑定)
b. "="(直接模型绑定/双向绑定)
c。 “&”(行为绑定/方法绑定)
为什么采用这种方法?
我有大约 27 种输入类型的表单。我想创建一个包含所有字段标签、输入和错误容器的组件。
【问题讨论】:
标签: angularjs angularjs-components