Javascript 角度JS:如何;“加载”;json数据集中的单个记录?
我有json数据,一个由50个代表人的对象组成的数组。每个都有像Javascript 角度JS:如何;“加载”;json数据集中的单个记录?,javascript,json,angularjs,state,Javascript,Json,Angularjs,State,我有json数据,一个由50个代表人的对象组成的数组。每个都有像id和lastName这样的参数 我通过解析,EmployeeResolve将其加载到控制器中,并将其加载到变量\u this.employees 我还通过$state params从上一页加载一个rownumer变量,该变量保存用户单击的记录的ID:\u this.rowNum=$stateParams.ID假设id是5 我现在想给一个变量分配对象号5(因为缺少更好的解释方法),这样在我的HTML中我就可以像在{{controll
id
和lastName
这样的参数
我通过解析,EmployeeResolve
将其加载到控制器中,并将其加载到变量\u this.employees
我还通过$state params从上一页加载一个rownumer
变量,该变量保存用户单击的记录的ID:\u this.rowNum=$stateParams.ID
假设id
是5
我现在想给一个变量分配对象号5(因为缺少更好的解释方法),这样在我的HTML中我就可以像在{{controller.lastName}}
从员工中获取第5项的语法是什么
更新
经过几次有益的评论和回答,我已经走到了这一步(人们现在都是包):
但是请注意,我希望在所有这些之后,\u this.currentPackage
包含一个对象,因此我可以简单地绑定到html中的props,就像在currentPackage.last\u name
中一样,但它没有。这是一个资源,我需要在log语句中使用上面的\u this.currentPackage[0].status
来获取任何信息。这不允许绑定
一位同事建议修改我的决心
PackagesResolve: function($log, MockDataFactory) {
return MockDataFactory.query({filename: 'packages'}).$promise.then(function(response) {
return response;
});
}
添加整个$promise。然后添加部分。没有真正的区别
要重申我正在尝试做的事情:
PackagesResolve正在获得一个包含50个对象的json数组。我希望能够在单击json表中的当前对象行时获取该对象
不,@jdvp这根本不是另一篇文章的翻版。我需要使用Angular而不是jquery或straight js来执行此操作。如果我正确理解了您的问题:resolve返回的对象就是resolved promise。已解析承诺的“数据”存储在resolve.data
中,在本例中,它将是预期的人员信息数组。因此,例如,您有员工解决方案
,您可以引用数组并使用以下方法存储它:
根据评论进行编辑:
// Assuming you've done all error checking...
_this.employees = EmployeeResolve.data;
// Now _this.employees has the array of people info.
$scope.controller = {};
$scope.controller.variableName = _this.employees[$stateParams.id];
// Now, you can access your object in your template using controller.variableName.
现在,虽然我不建议您在最终版本中编写这样的代码,但我相信您已经了解了要点
附加说明:我之所以创建一个空对象并将其存储为作用域上的controller
,是因为您的问题说明了这一点。我假设您有自己的理由希望在控制器
中命名变量
希望这有帮助 var fifthEmployee=_this.employees[5]代码>??不太清楚您在问什么。您可以对数组应用筛选器:var fifthEmployee=\u this.employees.filter(函数(employee){return(employee.id==5)}
。从你的故事中我得到的是:不完全是,这就是我困惑的原因var-fifthEmployee=_this.employees[5]无论我如何尝试替换传递的索引,它都失败了var-fifthEmployee=_this.employees[_this.rowNum]代码>不起作用我使用了你的过滤函数的想法,但出于某种原因,我需要在之后这样做来记录“status”(对象中的一个道具)的值:$log.debug('package from filter',u this.currentPackage[0].status)
我修改了这个问题。顺便说一句,我意识到为什么\u this.employees[\u this.rowNum]
不起作用,当然JS将数字转换为字符串。这行不通,因为我需要为页面上的所有内容定义一个变量。我希望将整个对象分配给一个变量,这样我就可以简单地在HTMLT中执行{{controller.myvariable.last_name}}
,所使用的{{controller.variablename}
语法可能是指ControllerAs语法。
// Assuming you've done all error checking...
_this.employees = EmployeeResolve.data;
// Now _this.employees has the array of people info.
$scope.controller = {};
$scope.controller.variableName = _this.employees[$stateParams.id];
// Now, you can access your object in your template using controller.variableName.