刚开始在做搜索联想功能时,使用了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也是可以解决短代码的。

最新文章

  1. 使用iTerm2快捷连接SSH
  2. [转]Windows进程间通信的各种方法
  3. Servlet学习笔记(1)--第一个servlet&amp;&amp;三种状态对象(cookie,session,application)&amp;&amp;Servlet的生命周期
  4. Opencv——彩色图像灰度化的三种算法
  5. nodejs 简单对mongodb 操作
  6. Windows下FFmpeg快速入门 &lt;第二篇&gt;
  7. MAVEN总结,整合Eclipse以及配置私服
  8. sockt初级了解 感悟 一起打怪升级偶
  9. js算法初窥01(排序算法01-冒泡、选择、插入)
  10. Gradle打jar包命令
  11. Linux 命令 —— iconv 转换编码
  12. C# 父子页面传值
  13. Codeforces 1096D Easy Problem 【DP】
  14. hadoop 核心概念及入门
  15. Django登陆以后重定向到请求登陆的页面
  16. 【PyQt5-Qt Designer】界面布局
  17. 第七十四课 图的遍历(BFS)
  18. delete,truncate 和 delete之间的区别
  19. 为什么有的需要安全连接的的application只有开Fiddler才好用?
  20. MongoDB入门教程二[MongoDB Shell 简介与使用]

热门文章

  1. hdu4764 Stone 博弈
  2. 用 Vue 全家桶二次开发 V2EX 社区
  3. java反射 顺序输出类中的方法
  4. cassandra.yaml 配置 (非原创,侵删)
  5. 第 5 章 MySQL 备份与恢复
  6. 解决相关css基础问题
  7. 克隆 CentOS 后系统启动问题解析
  8. 你真的知道组件中的v-model吗?
  9. java 多线程基础
  10. CSS实现文字和图片的水平垂直居中