标签:jquer 代码 路径 == 实现 logs 数据 没有 method
最近接触了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的代码就可以实现非常实用的小功能,后续还会继续添加新内容。
用angular方法简单实现了吃了么搜索小功能,还不太完善,后续会继续添加新内容。
标签:jquer 代码 路径 == 实现 logs 数据 没有 method
原文地址:http://www.cnblogs.com/microcosm1994/p/6660367.html