在 angularjs 中自定义一个可输入的下拉框组件,组件的创建及引入如下。
新建 insertSelect.html 文件
<style type="text/css">
.insert-select {
position: relative;
}
.input-box {
position: absolute;
height: calc(100% - 4px);
width: calc(100% - 25px);
top: 2px;
left: 2px;
padding-left: 10px;
outline: none !important;
border-radius: 4px !important;
border: none !important;
}
</style>
<!--可输入下拉框-->
<div class="insert-select">
<select ng-attr-placeholder="{{placeholder}}" class="form-control"
chosen ng-model="modelData"
ng-options="item for item in optionList">
<option value=""></option>
</select>
<input type="text" class="input-box"
ng-attr-placeholder="{{placeholder}}"
ng-model="modelData">
</div>
directive 自定义指令
//可输入select框
angular.module("controllers")
.directive("insertSelect", [function () {
return {
restrict: 'AE',
templateUrl: 'template/common/insertSelect.html',
scope: {
modelData: '=modelData',
optionList: '=optionList',
placeholder: '=placeholder', //placeholder 可由引入页面传入
},
link: function ($scope, $elem) {
//
},
controller: ["$scope", function ($scope) {
}]
}
}]);
页面引入 insertSelect 组件
<insert-select model-data="formData"
option-list="successCodeList"
placeholder="'请选择'">
</insert-select>