【发布时间】:2015-11-25 03:34:23
【问题描述】:
我刚开始使用http://parse.com,我想获取一些以前存储的数据。我尝试过的一切似乎都应该正常工作,但我感觉 parse 出于某种原因不能很好地与 AngularJS 一起工作。
这是我的 JS 和 HTML:
app.controller('FoodLog', function($scope) {
Parse.initialize("XXXXXX", "XXXXXX");
$scope.foodItems = [];
var Food = Parse.Object.extend("Food");
var parseFoodItems = new Parse.Query(Food);
parseFoodItems.find({
success: function(results) {
for (var i = 0; i < results.length; i++) {
var food_name = results[i].get('name');
var food_protein = results[i].get('protein');
var food_carbs = results[i].get('carbs');
var food_fat = results[i].get('fat');
$scope.foodItems.push({
name: food_name,
protein: food_protein,
carbs: food_carbs,
fat: food_fat,
calories: (food_protein * 4) + (food_carbs * 4) + (food_fat * 9)
});
}
},
error: function(error) {
alert("something broke" + " " + error.code + " " + error.message);
}
});
<div class="menu-items">
<div ng-repeat="item in foodItems">
<button class="btn btn-info" type="button" data-toggle="collapse" data-target="#food-{{$index}}">
{{item.name}}
</button>
<div id="food-{{$index}}" class="collapse">
<ul>
<li>Protein: {{item.protein}}g</li>
<li>Carbs: {{item.carbs}}g</li>
<li>Fat: {{item.fat}}g</li>
<li>Total Calories: {{item.calories}}</li>
</ul>
</div>
</div>
</div>
我为 Parse 使用了正确的键,我还尝试在推送到我的 foodItems 数组后输出到控制台,并且项目正在被推送,它们只是没有被 Angular 拾取.如果我将项目硬编码到数组中,它们会在我的 HTML 中正常显示。
非常感谢任何帮助!谢谢!
【问题讨论】:
-
您可能只需要在 Parse 回调函数结束时运行
$scope.$apply() -
天哪!非常感谢菲尔!!我很感激
标签: javascript angularjs parse-platform get