gpt4 book ai didi

javascript - 从范围数组中获取唯一项

转载 作者:行者123 更新时间:2023-11-30 17:01:30 25 4
gpt4 key购买 nike

我的 $scope.users 中有一个包含 JSON 对象的数组,它工作正常。我现在正在尝试通过过滤用户列表以获得单个用户来为单个用户设置“详细信息”页面。

我已经接近了一段难以忍受的时间,出于某种原因,我找不到文档或任何关于如何做我正在做的事情的例子。也许这不是在 Angular 中执行此操作的正确方法和/或也许我没有在寻找正确的东西?

我已经尝试从 Controller 中的列表中获取基于 userId 的对象,并且我已经尝试在状态中传递一个解析,但我没有得到任何一种方法。获取 ID 为 $stateparams.userId 的单个用户的最佳方法是什么?

其他一切都正常工作(即所有路由,让用户进入#/users)。

// routing section of app.js
// Routing
$urlRouterProvider.otherwise('/');
$stateProvider
.state('home', {
url: '/',
templateUrl: 'static/partials/main/home.html'
})
.state('users', {
url: '/users',
templateUrl: 'static/partials/accounts/users.html',
controller: 'UserController'
})
.state('profile', {
url: '/users/{userId}',
templateUrl: 'static/partials/accounts/profile.html',
controller: 'UserController'
});


// controller.js
var rlGlobalControllers = angular.module('rlGlobalApp.controllers', []);

rlGlobalControllers.controller('UserController', function($scope, $stateParams, $filter) {
var userId = $stateParams.userId;

$scope.users = [
{
'id': 1,
'name': 'Shadrack'
},
{
'id': 2,
'name': 'JP'
},
{
'id': 3,
'name': 'Adam'
}
];

// $scope.user = ???
});

# profile.html
<div ng-include src="'/static/partials/shared/header.html'"></div>

<div class="container">
<div class="row">
<p>users data: {{ users }}</p>
<p>user data: {{ user }}</p>
</div>
</div>

最佳答案

用户 Array.prototype.filter查找满足条件的对象的方法:

$scope.user = $scope.users.filter(function(user) {
return user.id === userId;
})[0];

这是最自然的解决方法。但是,如果您的 users 数组非常大(例如数百万(希望不是)),那么 juunas 的 for-loop-break 解决方案更有效。

关于javascript - 从范围数组中获取唯一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28743501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com