AngularJS实际项目应用--ui-router
来源:互联网 发布:为什么一淘比淘宝便宜 编辑:程序博客网 时间:2024/05/18 03:04
在项目开发过程中,我们都用ui路由来开发项目,因为ui路由有三个重要的特性:多视图、嵌套视图、视图命名。
具体ui-router的使用及功能请参考:http://ui-router.github.io
首先看一下,项目中某个模块的目录结构:
看到每个模块下都会有自己的路由配置文件,下面我们看怎么从启动app开始,配置动态加载路由的功能:
var app=angular.module("myApp",["ui.router","main"]);app.config(["$stateProvider","$urlRouterProvider","$sceDelegateProvider", function($stateProvider,$urlRouterProvider,$sceDelegateProvider) { /*设置白名单(跨域访问名单)*/ $sceDelegateProvider.resourceUrlWhitelist([ "self", "http://datainfo.duapp.com/**" ]) /*默认访问首页*/ $urlRouterProvider.otherwise("/main"); $stateProvider .state({/*首页*/ name:"main", url:"/main", template:"<main-com></main-com>" }).state({ name:"main.classify", //main页面的下classify(用于展示商品分类的) url:"/classify", template:"<list-com></list-com>", params:{classID:null} }) }])
使用ui路由时需要在模块中,注入ui.router到AngularJS主模块中。然后将main模板也注入到主模板中。
template:"<main-com></main-com>" 是要打开的模板组件名字
我们就详细的看下主页面main的详细代码:
JS代码:
var main = angular.module("main", []);main.component("mainCom",{ templateUrl:"component/main/main.html", controller:["$scope","$http", function($scope,$http){ $scope.classify=[]; //定义一个空数据,可以省略 $http({ method:"GET", url:"请求的地址" }).then( function success(resp){ console.log(resp) $scope.classify=resp.data; },function error(resp){ console.log("请求失败") } ) }]})
HTML代码:
<ul> <li ng-repeat="c in classify"> <a ui-sref=".classify({classID:c.classID})"> <span ng-bind="c.className"></span> </a> </li></ul><div ui-view></div>
ui-sref:用于代替按标签的href属性
goodeslist页面(用于获取商品列表)我的详细代码:
JS代码:
var goodeslist=angular.module("goodeslist",[]);goodeslist.component("listCom",{ templateUrl:"example/goodes/goodeslist.html", controller:["$scope","$http","$stateParams", function($scope,$http,$stateParams){ //$stateParams用来传递参数 $scope.goodes=[];//定义一个空数据,可以省略 $http({ method:"JSONP", url:"请求的商品列表路径", //$stateParams.classID 将calssID作为参数传递过来 classID:$stateParams.classID } }).then( function success(resp){ console.log("请求成功", resp); $scope.goodes=resp.data; },function error(resp){ alert("系统繁忙请稍后再试") } ) }]})
这里获取到的为jsonp对象,需要通过跨域也就是通过设置白名单的方式来访问。
$stateParams 是ui路由中用来传递参数的
HTML代码:
<div ng-repeat="g in goodes"> <div> <img ng-src={{g.goodsListImg}}> //输出图片 <div> <p ng-bind="g.goodsName></p> //输出商品名字 <p ng-bind="g.price></p> //输出价格 <p> <a href="#">立即购买</a> <a href="#">加入购物车</a> </p> </div> </div> </div>
这样就可以在页面展示商品信息了。
0 0
- AngularJS实际项目应用--ui-router
- AngularJS ui-router
- angularJS之ui-router
- AngularJS-UI-Router学习
- angularjs ui-router传值
- AngularJS ui-router (嵌套路由)
- AngularJS Routing Using UI-Router
- AngularJS ui-router (嵌套路由)
- 深入理解AngularJs-Ui-router
- AngularJS ui-router (nested routes)
- angularjs-ui-router的使用
- AngularJS ui-router (嵌套路由)
- AngularJS ui-router (嵌套路由)
- AngularJS ui-router (嵌套路由)
- AngularJS ui-router (嵌套路由)
- AngularJS ui-router (嵌套路由)
- AngularJS ui-router (嵌套路由)
- AngularJS ui-router (嵌套路由)
- hdu 1051 Wooden Sticks
- ubuntu安装QT5.7
- 史上最详细的虚拟机VMware12安装Windows7教程
- Java实现验证码验证功能
- 关于 android.support.v7.widget.ListPopupWindow 在5.0 以上设备显示时上下出现黑边的解决办法。
- AngularJS实际项目应用--ui-router
- C++抽象编程——面向对象(6)——设计新的类(1)
- 关于linux文件挂载(一)
- ping++调微信支付页面调不起来,怎么入手-
- Android中build target,minSdkVersion,targetSdkVersion,maxSdkVersion概念区分
- U盘分区合并
- Android之ConstraintLayout(依赖约束)布局
- vue2.x响应式原理,vue与react响应式简单对比
- Oracle数据库学习