.controller('PizzaCtrl', ['$scope','$state','$ionicLoading',
function($scope, $state, $ionicLoading) {
$scope.$emit('menu-refresh-request');
$scope.$on('menu-refresh-response', function(event) {
console.log("pizza");
$scope.$broadcast('scroll.refreshComplete');
$scope.items = $scope.$parent.menu.pizze;
console.log($scope.items[1].price);
$ionicLoading.hide();
});
$scope.doRefresh = function() {
$scope.$emit('menu-refresh-request');
};
}])
Everything seems to be in order. The correct data is logged successfully. But strangely, the ng-repeat="item in items"
directive in my view refuses to display the pizza items.
I attempted using both $scope.$apply
and $scope.$digest
within the event listener, yet an error was thrown stating that a digest process was already ongoing.
It's interesting to note that this controller has two sibling controllers with similar logic, just for different menu sections. Surprisingly, the console.log("pizza")
statement doesn't trigger until I navigate into the state.
Is there a specific reason why my view isn't updating as expected?
<ion-refresher pulling-text="Updating Menu..." on-refresh="doRefresh()">
<div class="list menu-list">
<a class="item menu-item" ng-repeat="item in items" ui-sref="menu.pizza-detail({ index: $index })">
<div class="row">
<h3 class="row" ng-bind="item.name"></h3>
<div class="row">
<div class="list-price col col-15">
<h4 class="list-value" ng-bind="item.price"></h4>
</div>
<div class="list-description col col-85">
<p ng-bind="item.description"></p>
</div>
</div>
</div>
</a>
</div>