AngularJS,过滤器:如何将一个巨大的对象(JSON)变成一个数组
AngularJS, filters: how to turn a big giant object (JSON) into an array?
我在使用 Angular 过滤器时遇到了一些问题,根据文档,过滤器仅适用于数组,我现在有一个非常大的对象,实际上是显示一些动态内容。我会给你们留下一些不同的例子来说明我正在经历的事情。
首先,我想要实现的行为,你可以在这里看到它。
第二,假设这是针对刚刚从浏览器控制台中的网络中提取的真实 JSON 对象。
在第二个示例中,您验证为什么我的搜索器不工作,实际上是因为我上面提到的对象。
我有名为 SportsFactory
的服务具有此功能
$http.get(CONSTANT_VARS.BACKEND_URL + '/lines/sports/' + agent)
.success(function(sports) {
//here I need: forcing array instead of object
sports = _.values(sports);
sports = _.sortBy(sports, function(sport) {
return sport.priority;
});
console.log(sports)
LocalForageFactory.set(CONSTANT_VARS.LOCALFORAGE_SPORTS, sports);
defer.resolve(sports);
})
.error(function(err) {
defer.reject(err);
});
如您所见,有一个console.log
返回以下内容:
[Object, Object, Object, Object, Object, Object, Object, Object, Object, Object]
现在,我该怎么做才能让我的过滤器正常工作?我该怎么做才能将该sports object
转换为数组?
基本上,函数的这一部分是返回我告诉您的对象,这是我需要返回数组
的对象 .success(function(sports) {
//forcing array instead of object
sports = _.values(sports);
sports = _.sortBy(sports, function(sport) {
return sport.priority;
});
console.log(sports)
LocalForageFactory.set(CONSTANT_VARS.LOCALFORAGE_SPORTS, sports);
defer.resolve(sports);
})
这是一个过滤器工作的 plunkr,我只是将您制作的数组设置为等于 $scope.变量并将其用于 ng-repeat。
普伦克
尔我稍微更改了代码,因为我没有在 plunkr 中执行 GET 请求,但想法是一样的。
var mySports = _.values($scope.sports);
$scope.sportsArray = _.sortBy(mySports, function(sport) {
return sport.priority;
});
console.log($scope.sportsArray);
//and the HTML
<div ng-repeat="sport in sportsArray | filter:query"></div>
让我知道这是否有意义。
相关文章:
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 对一个对象使用reduce可以返回一个没有't在数组中包含目标字母
- AngularJS&JSON-从Previous&下一个对象
- jQuery$.inArray()总是返回-1和一个对象数组
- javascript处理一个对象数组以获得一个新的对象数组
- javascript函数,它接受两个输入:一个对象和一个键,并返回对象中该键的相应值
- 你能用来自数组的属性名称生成一个对象吗
- 预期响应包含一个对象,但在angular js中得到一个数组错误
- Protractor:element.getText()返回一个对象,而不是String
- 如何使用jQuery添加另一个对象的高度作为边距
- 计算从一个对象到另一个对象的路径并沿其移动
- 如何将一个对象添加到每个对象数组中
- 为了避免创建全局变量,可以将所有变量分配给一个对象吗
- 将javascript对象(属性+值)合并到一个对象中
- 尝试简化检查对象键是否为true并将其推送到另一个对象
- 从 javascript 中的对象方法返回一个对象
- 响应应包含一个对象,但得到的却是GET操作的数组
- js:如何制作一个循环,将20个不同的东西添加到一个对象中
- 用javascript创建另一个对象的实例