繁体   English   中英

Cordova:未填充OnsenUI列表angularjs解析

[英]Cordova: OnsenUI list not being populated angularjs parse

我试图从解析中提取一个名称列表并将其添加到onsenui列表中,所以解析查询有效,因为我记录了这些名称并且该名称有效,但是列表项未显示在任何地方。

这是app.js

(function(){
var app = angular.module('myApp', ['onsen.directives']);
app.factory('Data', function(){
    var Data = {};

    Data.items = [];

    var parseAPPID = "***************************************";
    var parseJSID = "****************************************";

    //Initialize Parse
    Parse.initialize(parseAPPID,parseJSID);

    var NoteOb = Parse.Object.extend("place");

    //$(document).on("pageshow", "#places", function(e, ui) {
    //$.mobile.loading("show");
    var Places = Parse.Object.extend("Places");
    var query = new Parse.Query(Places);
    query.limit(100);
    query.ascending("Name");

    query.find({
        success:function(results) {
            for(var i=0; i<results.length; i++) {
                Data.items[i] = results[i].get('Name');
            }
        },error:function(e) {


        }
    });

    return Data;
});

app.controller('listCtrl', function($scope, Data) {
    $scope.items = Data.items;
});
})();

这是HTML页面

Index.html:

<!DOCTYPE html>
<html ng-app="myApp">
<head>
    <meta charset="utf-8" />
    <meta name="format-detection" content="telephone=no" />
    <!-- WARNING: for iOS 7, remove the width=device-width and height=device-height      attributes. See https://issues.apache.org/jira/browse/CB-4323 -->
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-    scale=1, user-scalable=no">
    <meta name="msapplication-tap-highlight" content="no" />

    <!--<link rel="stylesheet" src="http://code.jquery.com/jquery-1.9.1.css"></link>-->
    <!--<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js">    </script>-->

    <link rel="stylesheet" href="lib/onsen/css/onsenui.css">  
    <link rel="stylesheet" href="lib/onsen/css/topcoat-mobile-onsen-blue.css">
    <script src="http://www.parsecdn.com/js/parse-1.2.19.min.js"></script>
    <script src="lib/onsen/js/angular/angular.js"></script>    
    <script src="lib/onsen/js/angular/angular-touch.js"></script>
    <script src="lib/onsen/js/onsenui.js"></script> 

<title>MY APP</title>
</head>
<body>
    <ons-navigator page="list.html">
    </ons-navigator>

    <script type="text/javascript" src="cordova.js"></script>
    <script type="text/javascript" src="js/index.js"></script>
    <script type="text/javascript" src="js/app.js"></script>
</body>
</html>

list.html:

<!DOCTYPE HTML>

<html>
<head>
    <title>List A-Z</title>
</head>

<body>
    <ons-page class="center">
        <div ng-controller="listCtrl">
            <ons-list>
                <ons-list-item ng-repeat="item in items">
                    {{item}}
                </ons-list-item>
            </ons-list>
        </div>
    </ons-page>
</body>
</html>

根据此链接 ,我将答案更新如下:

(function(){
var app = angular.module('myApp', ['onsen.directives']);
app.factory('Data', function($q){



var parseAPPID = "***************************************";
var parseJSID = "****************************************";

//Initialize Parse
Parse.initialize(parseAPPID,parseJSID);

var Data = Parse.Object.extend("Places", {
  // Instance methods
}, {
  async: function() {
    var deferred = $q.defer();
    var query = new Parse.Query(Places);
    query.limit(100);
    query.ascending("Name");

    query.find({
        success:function(results) {
            // Resolve the deferred $q object before returning the promise
            deferred.resolve(results);
            for(var i=0; i<results.length; i++) {
                Data.items[i] = results[i].get('Name');
            }
        },error:function(e) {


        }
    });
    return deferred.promise;
  }
});

return Data; 

});

app.controller('listCtrl', function($scope, Data) {

    Data.async().then(function(d) {
        $scope.items = d.items;
    });  
});

})();

祝好运。 您可能需要查看以下内容: AngularJS:服务查询返回零结果

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM