Collections 如何从parse.com获取数据并使用AngularJs将其呈现到表中

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

我正在尝试获取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 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 

幸运的是,我能猜出来,你会对另一个答案感兴趣吗?(顺便说一句,你的很好,没什么错。有人可能会认为它受到延迟反模式的影响,但因为解析承诺的行为方式,它们不是摘要周期的一部分——我理解你为什么要这样做)