用于项目列表的UI-Router
UI-Router for item list Angularjs
我正面临一些问题与我的简单代码(研究),我真的需要一些帮助来解决这个问题。
首先我有一个php文件谁提供json.
app.php
<?php
$dbh = new PDO('mysql:host=localhost;dbname=caio', 'root', '');
$a = $dbh->query("SELECT * FROM usuario");
$b = json_encode($a->fetchAll(PDO::FETCH_ASSOC));
echo $b;
?>
是一个简单的json,包含id, name和姓
我也有一个Js文件来得到这个。app.js
var meuApp = angular.module('meuApp', ['ui.router']);
meuApp.config(function($stateProvider, $urlRouterProvider){
$stateProvider
.state('usuarios.detail', {
url: "/usuarios/{id}",
templateUrl: 'uDetail.html'
});
});
meuApp.controller('userCtrl', ['$scope', '$http', function ($scope, $http) {
$http.get('app.php')
.success(function(data) {
$scope.usuarios = data;
console.log(data);
//just checking in the console...
var id = data[0].id
console.log(id);
var nome = data[0].nome
console.log(nome);
});
}]);
最后是我的HTML文件
<html ng-app="meuApp" lang="pt">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.6/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.15/angular-ui-router.min.js"></script>
<script src="app.js"></script>
</head>
<body>
<div ng-controller="userCtrl">
<ul>
<li ng-repeat="usuario in usuarios">
<a ui-sref="usuarios.detail">{{usuario.nome}}</a>
</li>
</ul>
</div>
</body>
如果我想显示,好的代码是工作的,但我想在每个名称中单击,然后模板显示我的id,名字和这个"人"的姓氏。这就是我的问题。
谢谢大家
这里需要将person对象从一个状态传递到另一个状态。
可以使用ui-router
的params
属性。当你点击任何特定的人在那个时候,你需要通过id也从一个状态路由到另一个,因为你已经配置在url "/usuarios/{id}"
。Ui-router将从params中匹配该属性,并在url.
现在您可以成功地将点击对象从一种状态传递到另一种状态。在usuarios.detail
状态的控制器中使用ui-router的$stateParams
服务获取该对象,以便在uDetail.html
中显示
meuApp.config(function($stateProvider, $urlRouterProvider,$stateParams){
$stateProvider
.state('usuarios.detail', {
url: "/usuarios/{id}",
params: {
id: null,
person:null
},
templateUrl: 'uDetail.html',
controller: function($scope, $stateParams) {
$scope.portfolioId = $stateParams.id;
$scope.person = $stateParams.person;
console.log("State parameters " + JSON.stringify($stateParams));
}
});
});
和在你的模板中显示列表。
<ul>
<li ng-repeat="usuario in usuarios">
<a ui-sref="usuarios.detail({ id:usuario.id,person:usuario})">{{usuario.nome}}</a>
</li>
</ul>
见上面的代码,我给你参考。
你可以在这个Demo中看到ui-router的详细概念。
为了使代码正常工作,您需要进行一些小的更改,请检查下面的文件:
index . html
<!DOCTYPE html>
<html ng-app="app">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.6/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.15/angular-ui-router.min.js"></script>
<script src="app.js"></script>
</head>
<body>
<div ng-controller="userCtrl">
<ul>
<li ng-repeat="user in users">
<a ui-sref="users.detail({id: user.id, user: user})">{{user.name}}</a>
</li>
</ul>
</div>
<div ui-view></div>
</body>
app.js
var app = angular.module('app', ['ui.router']);
app.config(function($stateProvider) {
$stateProvider
.state('users', {
abstract: true,
url: 'users',
template: '<div ui-view></div>'
})
.state('users.detail', {
url: '/:id',
templateUrl: 'users.detail.html',
params: {
user: null
},
controller: function($scope, $stateParams) {
$scope.user = $stateParams.user;
}
});
});
app.controller('userCtrl', ['$scope', '$http',
function($scope, $http) {
// replace this with your service call
$scope.users = [{
id: 1,
name: 'john',
surname: 'doe'
}, {
id: 2,
name: 'mary',
surname: 'poppins'
}];
}
]);
user.detail.html
<fieldset>
<div>
<label>id: </label> {{user.id}}
</div>
<div>
<label>name: </label> {{user.name}}
</div>
<div>
<label>surname: </label> {{user.surname}}
</div>
</fieldset>
相关文章:
- 混合 ui-sref 和 $state.go 在 Angular ui-router 中进行状态转换
- 剑道UI下载列表:如何动态添加新元素
- Angular JS/UI Router:为给定状态禁用指令
- 使用AngularJS中的$stateProvider和ui.router
- 带有ui.router的带角度的嵌套视图
- 如何使用AngularJS,Vise和UI Router全局实现身份验证
- 如何使用AngularJS和ui-router从Laravel 5.1获取下载文件
- AngularJS - ui.router - 如何在动态添加它们后重定向到所需的状态
- Angular UI Router-在不了解第二级嵌套视图的情况下更改第三级嵌套视图
- 如何绑定外键剑道ui下载列表(带角)
- angularjs+ui.router:指令控制器和链接函数之间的不同行为
- AngularJS : ui.router 不显示模板
- [AngularJS][UI Router]在视图中显示视图
- Angular UI Router Resolve在AJAX完成之前未阻止状态更改
- 隐藏空模板,直到使用Restangular和UI Router加载数据
- Angular onEnter ui.router方法无法正常工作
- 如何使用Angular UI Router解析所有状态的数据
- ng模板,带有ui.router,单独的文件
- 使用Angular UI Router,如何使一个状态成为所有状态的子状态
- 用于项目列表的UI-Router