刚开始在做搜索联想功能时,使用了jquery.autocomplete.js插件,当并不理想,首先插件老旧,也只适合老版的jquery。其次在数组中只能联想到首字母一样的数据,比如[12,23,222,422]这个数组,输入关键字2时,只能联想到23和222这两个数据,很不理想,所以放弃。

之后发现一款jqueryui autocomplete自动完成插件,听所是之前jquery.autocomplete.js插件搬过来改进的,不关注。下面研究一下插件功能。

导入文件:<link rel="stylesheet" href="../../css/jquery-ui.css">

<script src="../../js/jquery/jquery-ui.js"></script>

$http.get(api).then(function(result){
if(result.status==200) {
if(result.data.code == 0 ){
$( "#keyword" ).autocomplete({
source:result.data.data,
select: function(event, ui) {
appearHist(ui.item.value);
mui.openWindow({
url: 'search_reasult.html?searchKey='+ui.item.value,
id: 'result',
extras: {
name: 'mui'
}
});
},
open:function(event,ui){          //open:当联想数据ul列表打开后执行的函数,深坑!原以为ui.item为联想到的数据,然后可以通过angular绑定到布局好的列表上呈现。让jqueryui自带的列表隐藏。然而ui好像只是摆设。
$scope.$apply(function(){
$scope.maskShow=true;
});
},
close:function(event,ui){        //close:当联想到的列表关闭后执行的事件。通过open与close可以实现change的事件。主要jqueryui的change事件其实是blur事件,鼠标离开点击时才会执行,简直了。
$scope.$apply(function(){
$scope.maskShow=false;
});
}
});
}else{
mConfirm("服务器繁忙,请刷新");
}
}else{
mConfirm("网络不好页面刷不出来呢,请刷新");
}
});

首先,我从后台获取到需要联想的数组,刚开始想用source的函数形式来进行联想筛选呈现,但好像每次联想都调服务器接口,消耗资源,所以就本地自动完成。

属性介绍:search :每次搜索之前发生,并没有什么用,和response一样。而且在value为空的时候并不发生。

与angular配合时,我先执行的这个插件的代码,发现angular指令全部失效,可能与angular安全机制有关系。所以加了ready函数,让angular代码先执行。这样就成功了。加$apply也是可以解决短代码的。

jqueryui autocomplete的使用与angular配合的小坑的更多相关文章

  1. jquery-ui autocomplete在模态框(model)中,出不来

    知识点:在使用模态框中使用 jquery-ui autocomplete,无法显示下拉框的数据 参考博客:https://www.jianshu.com/p/3944693773ed 解决办法:在au ...

  2. 一些angular/js/ts的坑和吐槽

    ------20190318 ------------- 回头看,很多槽点已经随着升级改掉了   绑定string字面值到子组件@Input <app-overlay-static [name] ...

  3. Angular测试遇到的小坑

    Angular测试遇到的小坑 Error: Expected to be running in 'ProxyZone', but it was not found 检查doneFn的写法是否正确,位置 ...

  4. Angular 8 - 更小的包

    Angular 8 - 更小的包 Angular 8 发布 原文地址:https://blog.angular.io/version-8-of-angular-smaller-bundles-cli- ...

  5. jQueryUI Autocomplete插件使用入门教程(最新版)---------转载

    前言: jQuery,无需多作介绍,相信各位读者都应该接触或使用过了.jQuery UI,简而言之,它是一个基于jQuery的前端UI框架.我们可以使用jQuery + jQuery UI非常简单方便 ...

  6. 【jQuery】JQuery-ui autocomplete与strtus2结合使用

    汉字搜索效果图: 拼音首字母搜索效果图:  1)数据库表及函数(SQL Server 2008) 先来建立数据库表City,它包含两个字段CityID,CityName. CREATE TABLE C ...

  7. 【jQuery】jquery-ui autocomplete智能提示

    jQuery UI,简而言之,它是一个基于jQuery的前端UI框架.我们可以使用jQuery + jQuery UI非常简单方便地制作出界面美观.功能强大.跨浏览器兼容的前端html界面. Auto ...

  8. jquery-ui autocomplete 自动完成功能

    效果图

  9. 解决jQueryUi AutoComplete在某些浏览器下无法出现候选项问题

    在某些浏览器(如火狐),在使用AutoComplete进行绑定的时候,无法出现与关键字相似的候选项.其原因这里有描述: 解决方法可以采用下面方式: $('#bindInputId).bind(&quo ...

随机推荐

  1. My First GitHub

    第一次使用github 在https://github.com/注册账号. 登陆之后,首先创建一个仓库(+ new repository),开源(public)的仓库是免费的,私人(private)的 ...

  2. selenium+python

    最近在学习selenium自动化测试,但是一直遇到一个问题,总是打不开指定的网址,今天突然成功了, 主要原因是因为selenium版本太低的缘故,所以只需要在终端输入:pip install -U s ...

  3. 让Unity的Inspector面板支持字符限制(restrict)功能

    今天在优化红点组件,笔者打算将红点id由10进制改为16进制处理,就打算将红点id字段由uint类型改成string类型,用于填写16进制的字符(因为在Inspector面板里,uint/int类型字 ...

  4. 吕鑫VC6.0-VS2015 全套C/C++、MFC新手实战入门教程、Linux视频教程 最好的基础入门教程没有之一

    本课程包括:[1]C语言(1个月)[2]C++语法与数据结构(1个月)) [3]MFC项目开发(1个月)[4]Linux项目开发(1个月)往届的授课视频都已经上传到百度网盘,请同学们按照视频教程提前掌 ...

  5. JUnit学习

    很早以前就知道JUnit也知道它用来做单元测试.今天突然又想到还是要学一下这个JUnit,不然说出去不知道怎么用JUnit做单元测试……作为一个程序员怪丢人的.第一篇JUnit不算是一个总结性的文章, ...

  6. maven 热部署至tomcat

    1.配置tomcat的界面访问账号和权限./tomcat/conf目录下tomcat-users.xml添加 这里是根据自己的需求添加的一个角色权限 <role rolename="a ...

  7. 【JAVAWEB学习笔记】24_filter实现自动登录和解决全局的编码问题

    过滤器Filter 学习目标 案例-自动登录 案例-解决全局的编码 一.过滤器Filter 1.filter的简介 filter是对客户端访问资源的过滤,符合条件放行,不符合条件不放行,并且可以对目标 ...

  8. iOS 比较版本号大小的方法

    比较iOS版本号大小 eg:3.2.0和3.1.0 或者 3.2.0和3.2比较 返回bool值变量YES or NO -(BOOL)compareVesionWithServerVersion:(N ...

  9. .net操作InI文件

    public class INI { public static string IniFileName = "";//路径 [DllImport("kernel32&qu ...

  10. Linux下关闭JBoss实例

    本文内容: 查看JBoss运行实例 #ps -ef|grep java 上图就是运行结果(部分结果),其中一个服务器上可能会运行多个JBOSS server实例,找到你需要看的那个. 其中 ps -e ...