用angular方法简单实现了吃了么搜索小功能,还不太完善,后续会继续添加新内容。

最近接触了Angular框架,今天用里面的http请求方法做了一个小的案例,是一个查询地名获取附近美食的小案例。还不太完善,后面面有时间会继续添加新的内容。这个小案例没有用到任何的jQuery与原生js方法。

先上HTML结构代码与HTML结构中的angular指令。

<body ng-app="app">
    <div ng-controller="con" id="con">
    <h1>吃了么</h1>
        <div id="nav">
            <button ng-click="get()">获取地名</button>
            <select ng-change="citis.alphbets" ng-model="alphbet" >
                <option ng-repeat="item in citis.alphbets"  value="{{item}}">{{item}}</option>
            </select>
            <select ng-model="cityId" ng-change="show()">
                <option ng-repeat="item in citis.city[alphbet]" value="{{item.id}}">{{item.name}}</option>
            </select>
        </div>
        <div id="search">
            <input type="text" ng-keyup="keyup()" ng-model="search">
            <div>
                <ul>
                    <li ng-repeat="item in position" >
                        <div ng-click="getday(item)" title="item">{{item.name}}</div>
                    </li>
                </ul>
            </div>
        </div>
        <div id="pa">
            <div ng-repeat="item in commodit"  class="commodit">
                <h3>{{item.name}}</h3>
                <p>{{item.phone}}</p>
                <img ng-src="item.image_path|getImgUrl" >
            </div>
        </div>
    </div>
</body>

  这里面有些简单的Angular指令,就不多做介绍了,下面就是AngularJs的代码,一些介绍也都写在了代码注释里

<script>
//定义两个全局变量,用来接收需要全局传递的数据
var data1,geohash;
    angular.module("app",[])
    //添加一个自定义过滤器,用来过滤最后获取到的商品图片的src路径
    .filter("getImgUrl",function(){
        var r1=/^(.)(..)/;
        var r2=/(jpeg|png|gif|jpg)$/;
        return function(urlPart){
            //拼接获取到的商家图片src路径
             return ‘ https://fuss10.elemecdn.com/‘ + urlPart .replace(r1, ‘$1/$2/‘) .replace(r2, ‘$1.$1‘+‘imageMogr2/thumbnail/70x70/format/webp/quality/85‘);
        }
    })
    .controller("con",["$scope","$http",function($scope,$http){
        $scope.get=function(){
            $http({
                url:"http://jklib.org/ele/cities.ashx",
                method:"get"
            }).success(function(data){
                //data是一个获取到的数据,把它添加到$scope对象中
                $scope.citis={
                    alphbets:Object.keys(data),
                    city:data
                }
                //把数据映射到全局中
                data1 = data;
            })
        };
        //给页面添加一个show方法
        $scope.show=function(){
            var city;
            cities=data1[$scope.alphbet];
            for(var i=0;i<cities.length;i++){
                if(cities[i].id==$scope.cityId){
                city=cities[i];
                break;
                }
            }
            //地理哈希cdn,计算出哈希值,赋值给全局变量
              geohash=geohashObj.encode(city.latitude, city.longitude);
        };
            //添加一个键盘事件,实时更新数据
        $scope.keyup=function(){
            //判断输入内容是否为空,如果为空直接返回
            if(!$scope.search) return;
            $http({
                //地址拼接中需要加一个哈希值
                url:‘http://jklib.org/ele/pois.ashx?geohash=‘ + geohash + ‘&keyword=‘ + $scope.search,
                method:"get"
            }).success(function(data){
                //把传回来的数据添加到$scope中,方便使用
                    $scope.position=data;
            })
        }
        $scope.getday=function(item){
            $http({
                url: ‘http://jklib.org/ele/restaurants.ashx?geohash=‘ + item.geohash + ‘&longitude=‘ + item.longitude + ‘&latitude=‘ + item.latitude,
                method:"get"
            }).success(function(data){
                $scope.commodit=data;
            })
        }
    }])
</script>

  一个Angular实现的小案例,主要用来练手,里面主要方法还是跨域的相关知识,和这里也没有太多关系,就不多做介绍了,一些简单的指令加一部分angular js的代码就可以实现非常实用的小功能,后续还会继续添加新内容。

时间: 2024-10-08 10:14:23

用angular方法简单实现了吃了么搜索小功能,还不太完善,后续会继续添加新内容。的相关文章

添加新内容的四个 jQuery 方法:append,prepend,after,before

添加新内容的四个 jQuery 方法区别如下: append() - 在被选元素(里面)的结尾插入内容prepend() - 在被选元素(里面)的开头插入内容 //jQuery append() 方法在被选元素的结尾插入内容. $("p").append("Some appended text."); //jQuery prepend() 方法在被选元素的开头插入内容. $("p").prepend("Some prepended te

Solr(五)Solr实现简单的类似百度搜索高亮功能-2代码

Solr高亮 一 在配置文件中,配置支持Ik分词器的Field 修改文件: cd /usr/local/tomcat/apache-tomcat-8.5.13/solr_home/Test/conf/vi managed-schema 红色部分是支持Ik分词器高亮显示的Field 二 配置完成之后,重启Tomcat,编写代码进行测试,对于环境搭建本文不做过多赘述. 1 与Solr服务器连接获取数据的类SolrRepository package com.sgcc.ge.solr; import

Solr(四)Solr实现简单的类似百度搜索高亮功能-1.配置Ik分词器

配置Ik分词器 一 效果图 二 实现此功能需要添加分词器,在这里使用比较主流的IK分词器. 1 没有配置IK分词器,用solr自带的text分词它会把一句话分成单个的字. 2 配置IK分词器,的话它会把句子分成词组 三 下载配置分词器 1 下载分词器IK 分词器下载地址: http://download.csdn.net/detail/u013292160/9926148 2 解压下载的文件 3 将ik-analyzer-solr5-5.x.jar这个jar包放入solr项目下的WEB-INF\

一个简单的加减乘除自动生成小程序升级版(JAVA)

1 import java.util.Scanner; 2 public class Suan { 3 public static void main(String[] args) { 4 int []b;//设置数组来存放随机产生数 5 b=new int [4]; 6 Scanner in=new Scanner(System.in); 7 System.out.println("请选择你想练习的题型:"); 8 System.out.println(" 1.分数的加减乘

spring AOP Bean添加新方法

目的:为studentAdditionalDetails中添加Student的showDetails()和ExtraShowDetails()两个方法 spring  中AOP能够为现有的方法添加额外的功能,AOP也能为Spring Bean添加新方法 <aop:declare-parents types-matching="之前原始的类/接口" implement-interface="想要添加的功能的接口" defalut-impl="新概念的默

使用scws组件分词和phpanalysis分词类实现简单的php分词搜索

使用scws组件分词和phpanalysis分词类实现简单的php分词搜索 关键字:php  分词  搜索 什么是scws: SCWS 是 Simple Chinese Word Segmentation 的首字母缩写(即:简易中文分词系统). 这是一套基于词频词典的机械式中文分词引擎,它能将一整段的中文文本基本正确地切分成词. 词是中文的最小语素单位,但在书写时并不像英语会在词之间用空格分开, 所以如何准确并快速分词一直是中文分词的攻关难点. SCWS 采用纯 C 语言开发,不依赖任何外部库函

gulp + angular + requirejs 简单学习

一.安装gulp(已经安装了node环境) npm  install -g gulp 二.在package.json文件中配置依赖插件 { "name": "xxxx", "version": "0.0.0", "private": true, "scripts": { "start": "node ./bin/www" }, "devD

CFileDialog的使用方法简单介绍

CFileDialog文件选择对话框的使用:首先构造一个对象并提供对应的參数,构造函数原型例如以下: CFileDialog::CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pParen

JS中的对象和方法简单剖析

众所周知,在js中对象就是精髓,不理解对象就是不理解js. 那么什么事js中的对象呢? 在js中,几乎一切皆对象: Boolean ,String,Number可以是对象(或者说原生数据被认作对象): Dates ,Maths,Regexps,Arrays,Funcitons,当然Objects,这些都是对象: JS中,所有值,除了原生值,都是对象:这些原生值包括:strings,numbers('3.14'),true,false,null和undefined 对象是包含变量的变量,js变量可