如何在QueryParse.com之后将所有对象加载到数组中
How to load into an array all objects after Query Parse.com
我使用Parse.com作为后端,在Query之后,我如何用Parse对象中的所有数据填充数组?如何避免重新映射?示例:
$scope.addContList = contacts.map(function(obj) { // re-map!!!!
return {name: obj.get("name")}; // mapping object using obj.get()
});
我正在一个接一个地映射我的Parse对象的属性:名称:obj.get("name")等等。有更好的方法吗?
$scope.addContList = [];
var ActivityContact = Parse.Object.extend("ActivityContact2");
var query = new Parse.Query(ActivityContact);
query.equalTo("activityId", $scope.objId);
query.find({
success: function(contacts) {
console.log("Successfully retrieved " + contacts.length + " contact.");
$scope.$apply(function() {
/*$scope.addContList = contacts.map(function(obj) {
return {name: obj.get("name")}; // mapping object using obj.get()
});*/
for (var i = 0; i < contacts.length; i++) {
$scope.addContList.push(contacts.ALL_PROPERTIES); // contacts.ALL_PROPERTIES does not exist, I'm looking a way to do that and avoid mapping?
}
});
console.log("--->>>"+JSON.stringify($scope.addContList, null, 4));
},
error: function(object, error) {
// The object was not retrieved successfully.
// error is a Parse.Error with an error code and message.
}
});
- 我应该使用Undercore库吗?这是唯一的方法吗
- 我见过一些人使用PFQuery,但我不知道那是什么,PFQuery对此更好吗
谢谢!
其他答案都是正确的,但我认为没有必要每次将项目从contacts
添加到$scope.addContList
时都启动摘要循环。这样的东西应该足够了:
query.find({
success: function (contacts) {
$scope.apply(function () {
// 1) shallow-copy the list of contacts...
// (this is essentially what you are trying to do now)
$scope.addContList = contacts.slice();
// or 2) just assign the reference directly
$scope.addContList = contacts;
// or 3) transform the Parse.Object instances into
// plain JavaScript objects
$scope.addContList = contacts.map(function (c) {
return c.toJSON();
});
});
},
error: function (object, error) {
// The object was not retrieved successfully.
// error is a Parse.Error with an error code and message.
}
});
选项1)和2)将对应于类似的模板
<div ng-repeat="cont in addContList">{{ cont.get('name') }}</div>
而选项3)可以像一样使用
<div ng-repeat="cont in addContList">{{ cont.name }}</div>
如果更改
$scope.addContList = contacts[i];
至:
$scope.addContList.push(contacts[i]);
你应该很乐意去。您以前的代码将addContList
重新分配为contacts
数组中的每个元素,而不是将元素添加到其中。因此,在for
循环结束时,$scope.addContList
将是contacts
数组中的最后一个联系人。
更改:
$scope.addContList = contacts[i];
至
$scope.addContList.push(contacts[i]);
相关文章:
- ThreeJS访问加载的obj模型中的对象
- 正在加载具有相同功能的多个对象
- 如何使用amcharts中的dataloader将对象加载为JSON中的数据字段
- 修改角度阵列对象加载
- 从表单中派生要使用javascript对象加载的图像路径
- 三.js 三的错误.对象加载器
- 将 Json 对象加载到 javascript 中,然后使用字段
- 从本地 json 对象加载数据的灵活网格
- 将本地 JSON 对象加载到网格中的 extjs
- AngularJS - ng-show 在对象加载时显示内容
- three.js:在着色器材质中使用纹理,该材质添加到由对象加载器加载的对象中
- 如何在QueryParse.com之后将所有对象加载到数组中
- 如何使用javascript将Yii2对象加载到输入中
- 如何传递存储中的数组或对象.加载({params:{}})
- 将数据从JSON对象加载到数组中
- 如何获取事件的wordpress's oEmbed对象加载在TinyMCE
- 对象加载在不同的位置每次我刷新页面- Three.js - OBJMTLloader
- 如何从变量,对象加载JSON
- 在THREE.js中取消将对象加载到场景中
- Javascript:如何在没有jQuery或AJAX的情况下将JSON对象加载为文件