我有json数据,一个由50个对象代表人的数组。每个参数都有id
和lastName
等参数。
我通过解析EmployeeResolve
将其加载到我的控制器中,并加载到变量_this.employees
我还通过前一页的$ state params加载一个rowNumber
变量,该变量包含用户点击的记录的ID:_this.rowNum = $stateParams.id;
让我们说id
是5
。
我想现在为一个变量分配对象编号5(为了更好的解释方式),以便在我的HTML中我可以像{{controller.lastName}}
从employees
获取第5项的语法是什么?
更新 经过几个有用的评论和回答,我已经走到了这一步(人们现在是包裹):
_this.recordNum = Number($stateParams.id);
_this.packages = PackagesResolve;
_this.currentPackage = _this.packages.filter(function(pkg) {
return pkg.id === _this.recordNum;
});
$log.debug('package from filter', _this.currentPackage[0].status);
但请注意,我希望_this.currentPackage
包含一个对象,所以我可以简单地绑定到html中的道具,就像在currentPackage.last_name
中一样,但事实并非如此。它是资源,我需要在日志语句中使用上面的_this.currentPackage[0].status
来获取任何内容。并且这不会允许绑定。
一位同事建议修改我的决心
PackagesResolve: function($log, MockDataFactory) {
return MockDataFactory.query({filename: 'packages'}).$promise.then(function(response) {
return response;
});
}
添加整个$promise.then
部分。没有真正的区别。
重申我要做的事情:
PackagesResolve正在获取一个包含50个对象的json数组。我希望能够在单击该json的表中的行时获取CURRENT对象。
不,@ jdvp根本不是其他帖子的副本。我需要使用Angular,而不是jquery或直接js。
答案 0 :(得分:0)
如果我正确理解您的问题:resolve返回的对象是已解决的承诺。 "数据"已解决的承诺(在这种情况下是预期的人员信息数组)存储在resolve.data
内。因此对于例如你有EmployeeResolve
,你可以引用数组并使用它来存储它:
根据评论进行编辑:
// 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
存储在范围内的原因是因为您的问题所述。我假设您有自己的理由想要在controller
内命名变量。
希望这有帮助!