[英]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.