angularjs 输入框智能提示typeahead

  

       通过在输入框中输入关键词,下拉框中出现带有输入框中关键词的选项。ps:选项内容来源于后台服务器。

factory.js:

function getKey(searchParams) {  //查询选项列表
    var deferred = $q.defer();
    $http({
        url: 'url',
        data: searchParams,
        method: 'POST'
    }).success(function (result) {
        if (result.success) {
            deferred.resolve(result.data);
        } else {
            deferred.reject(result);
        }
    }).error(function (result) {
        deferred.reject(result);
    });
    return deferred.promise;
}

  

    html模板:

<div class="form-group form-group-member">
    <input type="text" class="form-control" placeholder="请输入搜索关键词"
           ng-model="condition.keyName" uib-typeahead="key.keyName as key.keyName for key in keys | filter:$viewValue| limitTo:all">
</div>

  

    controller.js:

getKey();

function getKey() {  //获取选项列表
    var promise = memberService.getKey();
    promise.then(function (data) {
        $scope.keys= data.dataList;
    }, function (error) {
        Alert.showMessage(error);
    });
}

  

ps:此处有个问题,limitTo用来限制下拉框中显示的选项个数,我在静态页面中就可以设置显示所有的选项数据,但在实际项目中却有些数据选项出不来,但输入完整的数据选项时它又能出来,一直没想明白,知道的小伙伴求指教啊

ps:2017-11-6-记

limitTo用来限制选项个数,但由于页面高度问题不能完全显示,只是显示了一部分,实际上后台返回的所有数据已经绑定到了li上,这里为其加一个滚动条即可解决上述问题。

 

转载于:https://www.cnblogs.com/haimengqingyuan/p/7666368.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值