Collections 如何从parse.com获取数据并使用AngularJs将其呈现到表中
我正在尝试获取parse.com集合中存储的数据。我使用Parse Javascript SDK异步调用服务,如下所示:Collections 如何从parse.com获取数据并使用AngularJs将其呈现到表中,collections,parse-platform,promise,Collections,Parse Platform,Promise,我正在尝试获取parse.com集合中存储的数据。我使用Parse Javascript SDK异步调用服务,如下所示: ctrl.factory('TLDs', function($q){ var query = new Parse.Query(Fahras)// Fahras is the Parse Object initialized earlier in code query.equalTo("type", "Domain") var myCollec
ctrl.factory('TLDs', function($q){
var query = new Parse.Query(Fahras)// Fahras is the Parse Object initialized earlier in code
query.equalTo("type", "Domain")
var myCollection = query.collection()
return {
fetchDomains: function(){
var defer = $q.defer();
myCollection.fetch({
success : function(results) {
defer.resolve(results.modles);
console.info(results.models)
},
error : function(aError) {
defer.reject(aError);
}
});
console.info(defer.promise)
return defer.promise;
}
}
}) // end of factory topDomains
我有一个简单的表来显示获取的数据
<div id="showdomainshere"> {{domains}}</div>
<table id="domains_table" class="table table-hover">
<thead>
<tr>
<th>Domain</th>
<th>Code</th>
<th>Subjects</th>
<th>Instances</th>
</tr>
</thead>
<tbody id="table_body">
<form id="edit_row" class="form-inline">
<tr ng-repeat="item in domains">
<td><span>{{item.attributes.arTitle}}</span>
</td>
<td><span>{{item.attributes.domainCode}}</span>
</td>
<td><span>{{subclasses}}</span>
</td>
<td><span>{{instances}}</span>
</td>
</tr>
</form>
</tbody>
</table>
</div> <!-- end of main div -->
使用console.info,我可以看到结果已被获取,并且可以按预期查看返回的模型数组。问题是$scope.domains从未更新过,因此表从未呈现过幸运的是,我能够找到它 控制器应类似于:
ctrl.controller('Home', ['$scope','TLDs',function($scope, TLDs) {
TLDs.fetchDomains().then(function(data){
$scope.domains = data
})
}
ctrl.factory('TLDs', function($q){
var query = new Parse.Query(Fahras)
query.equalTo("type", "Domain")
var myCollection = query.collection()
return {
fetchDomains: function(){
var defer = $q.defer();
myCollection.fetch({
success : function(results) {
defer.resolve(results.models)
return results.models
},
error : function(aError) {
defer.reject(aError)
}
})
return defer.promise;
}
} }) // end of factory
而工厂本身应该是这样的:
ctrl.controller('Home', ['$scope','TLDs',function($scope, TLDs) {
TLDs.fetchDomains().then(function(data){
$scope.domains = data
})
}
ctrl.factory('TLDs', function($q){
var query = new Parse.Query(Fahras)
query.equalTo("type", "Domain")
var myCollection = query.collection()
return {
fetchDomains: function(){
var defer = $q.defer();
myCollection.fetch({
success : function(results) {
defer.resolve(results.models)
return results.models
},
error : function(aError) {
defer.reject(aError)
}
})
return defer.promise;
}
} }) // end of factory
幸运的是,我能猜出来,你会对另一个答案感兴趣吗?(顺便说一句,你的很好,没什么错。有人可能会认为它受到延迟反模式的影响,但因为解析承诺的行为方式,它们不是摘要周期的一部分——我理解你为什么要这样做)