【发布时间】:2017-09-04 10:26:35
【问题描述】:
我正在使用 $stateParams 和 Angular ui-router 在单击员工列表中的员工时将 json 对象的 id 属性传递给 url,以便他们的数据显示在员工详细信息页面中。
url 路由似乎正在工作,因为员工 id 已成功显示在 url 中,但数据没有从员工列表传递到员工详细信息状态。员工存储在控制器“employeesListController”中的json对象中,处于“employees/employeesList”状态,我需要单击员工的详细信息以“employees/employeeDetails”状态显示在控制器“employeeDetailsController”中。
我得到的 url 扩展示例(因此路由正确):/employees/employeeDetails/21101994。
我查看了 $state.go,但无法理解如何将它实现到这段代码中,因为我找不到一个全面的实际示例。
州:
.state('employees/employeesList', {
url: '/employees/employeesList',
templateUrl: 'pages/employees/employeesList.html',
controller: 'employeesListController'
})
.state('employees/employeeDetails', {
url: '/employees/employeeDetails/:employeeId',
templateUrl: 'pages/employees/employeeDetails.html',
controller: ('employeesDetailsController', ['$scope', '$stateParams', function($scope, $stateParams) {
$scope.employeeId = $stateParams.employeeId;
}])
})
-
'employeesListController':
app.controller('employeesListController', function($scope) {
$scope.active = 'active';
$scope.sortByAllDepartments = '+lastName';
var employees = [
{
id: '21101994',
firstName: 'Employee',
lastName: 'One'
},
{
id: '22071958',
firstName: 'Employee',
lastName: 'Two'
},
];
$scope.employees = employees;
})
-
HTML 包括。 ui-sref 链接:
<li class="collection-item col-xs-12" data-ng-repeat="employee in employees | orderBy: sortByAllDepartments | filter:searchAllDepartments">
<a ui-sref="employees/employeeDetails({employeeId: employee.id})" class="employeeLink"></a>
<div>
<p data-ng-show="employee.firstName || employee.lastName" class="title">{{employee.firstName}} {{employee.lastName}}</p>
<p data-ng-show="!employee.firstName" class="title">(No Data)</p>
<p data-ng-show="!employee.lastName" class="title">(No Data)</p>
etc......
【问题讨论】:
-
您如何在列表页面中获取员工的价值?您只是将employeeId 发送到详细信息页面。是否可以从id中获取员工的详细信息?
-
我已经展示过了。列表页,使用employeesListController控制器,对列表项使用ng-repeat来绑定数据
-
但是如何在详细信息页面中获取员工的详细信息?您显示的是列表页面。
-
我明白了。我刚刚使用 javascript 选择器(例如:
{{employee.firstName}}
)等以相同的方式访问了数据属性。 -
您的详细信息控制器无权访问名称等...您传递给详细信息控制器的唯一内容是employeeId。你是如何从 id 中获取 firstName 的?
标签: javascript angularjs json routing angular-ui-router