AngulaJS路由 ui-router 传参实例

在这里分享我做的一个使用ui-router 传参的小demo

1.首先第一步设置入口文件index.html,注意加载的顺序,先加载包,再加载自己写的控制器。

rush:xhtml;"> terapp"> <Meta charset="utf-8"> <Meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no,width=device-width"> 测试

2.app.js文件,依赖注入,设置路由,此处的路由是使用ui-router路由,这里简单的演示了两个模板之间的传参,传递参数的模板test.html和接收参数的模板result.html

rush:js;"> var routerapp = angular.module('routerapp',['ui.router']);

routerapp.run(function($rootScope,$state,$stateParams) {
$rootScope.$state = $state;
$rootScope.$stateParams = $stateParams;
});

routerapp.config(function($stateProvider,$urlRouterProvider) {
$urlRouterProvider.otherwise('/index');
$stateProvider
.state('index',{//模板的参数
url: '/index',//url的参数
templateUrl: 'templates/test.html',//模板的位置
controller: 'MyController'
})
.state('result',{
url: '/result/:id/:number',//需要传的参数的键名
templateUrl: 'templates/result.html',controller: 'resultCtrl'
});
});

3.第一个页面的模板test.html,并且设置点击事件toResult()

rush:xhtml;"> <Meta charset="UTF-8">
hello world

4.test.html的控制器indexCtrl.js,设置需要传递的参数$scope.abc和$scope.toResult,点击事件toResult()里面其实就是一个$state.go('模板的参数',{app.js里面需要传的参数的键名:需要传的参数值})的方法

rush:js;"> routerapp.controller('MyController',function($scope,$state) { $scope.abc = "nice";//需要传的参数值 $scope.def = 10;//需要传的参数值 $scope.toResult = function(){ $state.go('result',{id: $scope.abc,number: $scope.def}); } });

5.接收参数的模板result.html

rush:xhtml;"> <Meta charset="UTF-8">
hello world2

6.result.html的控制器resultCtrl.js,这里使用$stateParams的方法去接收上一个页面传递过来的参数

rush:js;"> routerapp.controller('resultCtrl',$stateParams) { var id = $stateParams.id; var number = $stateParams.number; console.log(id); console.log(number); });

项目目录

js\app.js、indexCtrl.js、resultCtrl.js

lib\ jquery\jquery-1.11.3.min.js angular\angular.js angular-ui\angular-ui-router.js

templates\test.html、result.html

index.html

其实整个过程并不难,只是穿插在模板和控制器之间,容易让人摸不着头脑,只要分清楚具体的参数是对应哪一个,很容易理解。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


什么是深拷贝与浅拷贝?深拷贝与浅拷贝是js中处理对象或数据复制操作的两种方式。‌在聊深浅拷贝之前咱得了解一下js中的两种数据类型:
前言 今天复习了一些前端算法题,写到一两道比较有意思的题:重建二叉树、反向输出链表每个节点 题目 重建二叉树: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列 {1,2,4,7,3,5,6,8} 和中序遍历序列 {
最近在看回JavaScript的面试题,this 指向问题是入坑前端必须了解的知识点,现在迎来了ES6+的时代,因为箭头函数的出现,所以感觉有必要对 this 问题梳理一下,所以刚好总结一下JavaScript中this指向的问题。
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面
如何用js控制图片放大缩小
JS怎么获取当前时间戳
JS如何判断对象是否为数组
JS怎么获取图片当前宽高
JS对象如何转为json格式字符串
JS怎么获取图片原始宽高
怎么在click事件中调用多个js函数
js如何往数组中添加新元素
js如何拆分字符串
JS怎么对数组内元素进行求和
JS如何判断屏幕大小
js怎么解析json数据
js如何实时获取浏览器窗口大小
原生JS实现别踩白块小游戏(五)