我正在尝试在网址中传递ID,以便它可以被其他网页更具体地用于详细信息页面,但我一直都没有得到任何结果。网址是正确的路线,但身份证不会传入。我不知道我做错了什么。
这是我的app.js文件:
$stateProvider.state('contact', {
url: '/contact',
templateUrl: 'templates/contact.html',
controller: 'mainController'
});
$stateProvider.state('contact.detail', {
url: '/detail/:id',
templateUrl: 'templates/contact.detail.html',
controller: 'detailController'
});
这是我的控制器文件:
myApp.controller('detailController', ['$scope', '$stateParams',
function ($scope, $stateParams) {
'use strict';
$scope.peoples = $scope.peoples[$stateParams.id];
}]);
这是我的联系人文件:
<div class="container">
<div class="row">
<div class="col-md-6">
<table class="table table-striped">
<thead>
<th>First name</th>
<th>Last name</th>
<th>Age</th>
</thead>
<tbody>
<tr ng-repeat="person in peoples">
<td><a ui-sref="contact.detail({id: person.id})">{{person.firstname}}</a></td>
<td>{{person.lastname}}</td>
<td>{{person.age}}</td>
</tr>
</tbody>
</table>
</div>
<div class="col-md-6">
<div ui-view></div>
</div>
</div>
答案 0 :(得分:2)
有一点是:
使用索引器进行搜索,例如
$scope.peoples[someIdValue]
找不到ID,而是位置(索引)
第二点是:
不要使用新值重新分配参考 $ scope.peoples (并丢失该引用)
所以,这应该是修复(使用 lodash
来查找人员)
.controller('detailController', ['$scope', '$stateParams',
function($scope, $stateParams) {
//$scope.peoples = $scope.peoples[$stateParams.id];
$scope.person = _.find($scope.peoples, {id: $stateParams.id});
}])
中的所有内容