<div class="container"> <div ui-view> </div></div>这里有一点要注意下,div里面添加的属性不再是ng-view了,而是ui-view。
var app=angular.module("app",["ui.router","loginModel","listModel"]);app.config(function ($stateProvider, $urlRouterProvider) { $urlRouterProvider.otherwise("/index"); $stateProvider .state("index",{url: "/index",templateUrl: "tpls/start.html" }) .state("register",{url: "/register",templateUrl: "tpls/register.html" }) .state("main",{url: "/main{positionType:[0,9]{1,5}}",views: {"": { templateUrl: "tpls/main.html"},"typeList@main": { templateUrl: "tpls/typeList.html"},"tbHero@main": { templateUrl: "tpls/tbHero.html"}} }) .state("addHero",{url: "/addHero",templateUrl: "tpls/addHero.html" }) .state("find",{url: "/findPwd",templateUrl: "tpls/findPwd.html" }) .state("detail",{url: "/detail/:id",templateUrl: "tpls/detail.html" })})这里有三个地方需要注意:<div class="row"> <div class="col-sm-2" ui-view="typeList"> </div> <div class="col-sm-10" ui-view="tbHero"> </div></div>typeList部分
<div class="row"> <div class="col-sm-12"> <div class="list-group"><a href="javascript:void(0);" class="list-group-item active">英雄定位类型</a><a ui-sref="main({positionType:0})" class="list-group-item">全部定位</a><a ui-sref="main({positionType:1})" class="list-group-item">射手</a><a ui-sref="main({positionType:2})" class="list-group-item">中单</a><a ui-sref="main({positionType:3})" class="list-group-item">上单</a><a ui-sref="main({positionType:4})" class="list-group-item">打野</a><a ui-sref="main({positionType:5})" class="list-group-item">辅助</a> </div> </div></div>tbHero部分<div ng-controller="listCtrl"> <div class="row"> <div class="col-sm-3"><button class="btn btn-success" ui-sref="addHero()">添加英雄</button><button class="btn btn-warning" ui-sref="index()">退出</button> </div> <div class="col-sm-9"><form class="form-horizontal"><input type="text" ng-model="filterOptions.filterText" placeholder="请输入查询关键字..." class="form-control searchText"/></form> </div> </div> <div class="row"> <div class="col-sm-12"><div class="gridStyle" ng-grid="gridOptions"></div> </div> </div></div>JS部分
var listModel = angular.module("listModel",["ngGrid"]);listModel.controller("listCtrl",["$scope","$http","$state","$stateParams", function ($scope, $http, $state, $stateParams) { $scope.pagingOptions = { pageSizes: [5,15,20], pageSize: 5, currentPage: 1 }; $scope.filterOptions = { filterText: "", useExternalFilter: true }; $scope.totalServerItems = 0; $scope.getDates = function (pageSize,page,/*optional*/searchText) { setTimeout(function () {if(searchText){searchText = searchText.toLowerCase();$http.get("data/hero.php?param="+$stateParams.positionType).success(function (data) { var data = data.filter(function (item) { return JSON.stringify(item).indexOf(searchText) != -1; }) data.forEach(function (item,i) { item.index = i+1; }); $scope.totalServerItems = data.length; $scope.datas=data.slice((page-1)*pageSize,page*pageSize);}).error(function (data) { alert("请求错误...");})}else{$http.get("data/hero.php?param="+$stateParams.positionType).success(function (data) { data.forEach(function (item,i) { item.index = i+1; }); $scope.totalServerItems = data.length; $scope.datas = data.slice((page-1)*pageSize,page*pageSize);}).error(function (data) { alert("请求错误...");})} },100); }; $scope.getDates($scope.pagingOptions.pageSize,$scope.pagingOptions.currentPage); $scope.$watch("pagingOptions", function () { $scope.getDates($scope.pagingOptions.pageSize,$scope.pagingOptions.currentPage); },true); $scope.$watch("filterOptions", function () { $scope.getDates($scope.pagingOptions.pageSize,$scope.pagingOptions.currentPage,$scope.filterOptions.filterText); },true); $scope.gridOptions = { data: "datas",//表格中显示的数据来源 multiSelect: false, //是否能多选 enableRowSelection: false, //是否能选择行 enableCellSelection: true, //是否能选择单元格 enableCellEdit: false, //是否能修改内容 enablePinning: true,//是否被锁住了 columnDefs: [{field: "index", //这里是数据中的属性名width: 80,display: "序号", //这里是表格的每一列的名称pinnable: true,sortable: true//是否能排序}, {field: "name",displayName: "姓名",width: 120,sortable: true,pinnable: true},{field:"alias",displayName:"别名",width: 60,sortable: true,pinnable: true},{field:"position",displayName: "定位",width: 70,sortable: true,pinnable: true},{field:"equip",displayName: "装备",width: 500,sortable: true,pinnable: true},{field:"id",displayName: "详细攻略",sortable: false,pinnable: true,cellTemplate:"<div class="cellDetail"><a ui-sref="detail({id:row.getProperty(col.field)})" id="{{row.getProperty(col.field)}}">详情</a></div>"} ], enablePaging: true, //是否能翻页 showFooter: true,//是否显示表尾 totalServerItems: "totalServerItems", //数据的总条数pagingOptions: $scope.pagingOptions, //分页部分 filterOptions: $scope.filterOptions//数据过滤部分 }}])这里最重要的就是$scope.gridOptions这一块了,同时我们需要多注意下最后一个详细攻略里面,传参数的写法。


另外在这里面还用到的关于angular表单验证、service、向导、php等方面的内容这里就不做过多介绍了,如果有哪里写的不对的地方,万望留言告知,谢谢^_^。
以上这篇浅析angularJS中的ui-router和ng-grid模块就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。