100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Angularjs自定义指令实现通用下拉选择框

Angularjs自定义指令实现通用下拉选择框

时间:2022-05-20 04:16:42

相关推荐

Angularjs自定义指令实现通用下拉选择框

注释写的比较清楚了吧 。。。

指令

bptconfig.directive('appnameSelect', function () {return {restrict:"EA",//E:元素 A:属性 C:样式类 M:注释replace: true,scope:{//@:从父级获取值后便只在本地作用域生效 = :同父级controller中的指定对象双向绑定 &:从父级获取一个变量的引用,常用作方法调用serviceName:'@',//service bean 后端根据这个值获取下拉数据 disabledType:'@',//是否可点击 true:是 false:否selectData:'=',//选中的值selectChange:"&",//选择事件},//模板 --模板代码多的情况下用templateUrl吧template:'<select ng-disabled="{{disabledType}}" ng-model=selectData class="form-control" ng-options="o.id as o.appName for o in appDatas"></select>',controller:['$scope','$http','$filter',function (scope,$http,$filter) {//获取下拉选择数据$http({method:'POST',url:'role/getSelectData?serviceName='+scope.serviceName}).success(function (response) {scope.appDatas = response;//设置下拉框初始值if(scope.disabledType=='false' && response.length>0){scope.selectData = response[0].id;}});}],link:function (scope,elements,attrs,controller) {//监听选择事件并交给父级处理(也可以在指令中处理,看具体使用场景) scope.$watch('selectData',function () {scope.selectChange();})}}})

页面使用

<appname-select select-change="changeSelect()" select-data="data.appId" disabled-type="{{editType=='edit'}}" service-name="appnameService"></appname-select>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。