【发布时间】:2015-08-20 04:13:40
【问题描述】:
我正在使用动态路由开发单页应用程序。我从以下 URL 获取 bookid
myApp.controller('BookCtrl', function($scope,$routeParams) {
$scope.mybookid=$routeParams.bookurl;
});
这是我的数据
var bookdata = {
"records": [
{
"seriesid": "SpectrumSeries",
"name": "White Curse",
"bookid": "WhiteCurse",
"image": "book1",
}
...
]};
在上面的控制器中,如何过滤出 bookid 等于 $scope.mybookid 的对象?我知道我可以通过 ng-repeat 和 filter 做到这一点,但有没有更有效的方法?
【问题讨论】:
-
是
bookid在records中唯一吗? -
所以您可以使用数组来代替数组,然后通过属性名称获取值,例如:
var bookdata = { "records": { "WhiteCurse" : { "seriesid": "SpectrumSeries", "name": "White Curse", "bookid": "WhiteCurse", "image": "book1", }然后records[$scope.mybookid] -
mybookid 是一个字符串,(即“WhiteCurse”,不是数字)因为我是从 URL 中获取的,所以这种方法可行吗?
-
您需要将数组
records更改为对象,然后在我的示例中一切正常 - 记录是对象,而不是数组 -
我会试试的。谢谢你的建议