2017-01-08 1 views
0

J'ai un problème avec mon ng-repeat. Après avoir cliqué sur ng-click, mon ng-repeat ne se charge pas, la page est vide. J'ai un fichier html appelé "food.html" dans lequel j'appelle le ng-click() plus loin j'ai un fichier "food-snack.html" qui contient le ng-repeat et au moins mon "controller". js "où la fonction de ng-click appelle. J'espère que quelqu'un peut m'aider. Je suis désolé pour ma notation confuse mais c'est mon premier blog.ng-repeat ne se charge pas après ng-click

1.food-snack.html

<ion-content class="padding" > 
    <ion-refresher pulling-text="Refresh" on-refresh="refreshAll('snack')"></ion-refresher> 
    <ion-checkbox class = "item-checkbox-right checkbox-dark" ng-repeat="food in snacks"> 
     <h2><b>{{food.food}} </b></h2> 
     <p>Preis: {{food.price}} {{food.currency}}</p> 
    </ion-checkbox>   
</ion-content> 

2.food.html

<ion-content class="padding"> 
    <br><br><br><br><br><br><br> 
    <button class = "button button-block button-dark" ng-click = "getSnacks()" > Snacks  </button> 
    <button class = "button button-block button-dark" ng-click = "getSandwich()" > Sandwich </button> 
</ion-content> 

3.controller.js

.controller('TablesCtrl', function($scope, $stateParams, $ionicPopup, $http, $state, $timeout, Foods) { 

$scope.getSnacks = function(){ 

    $state.go("tab.food-snack"); 
    $http.get('http://xxxxxx/connect.php?getSnacks=1').then(function successCallback(response) 
    {  
     $scope.snacks = Foods.appendAll(response.data); 
     console.log(response); 
    }, function errorCallback(response) { 
      var confirmPopup = $ionicPopup.confirm({ 
       title: 'Nicht erfolgreich', 
       cancelText: 'Nein', 
       okText: 'Ja', 
       okType: 'button-dark', 
       cancelType: 'button-positive' 
      }); 
     }); 
};//END OF FUNCTION getSnacks() 

$scope.getSandwich = function() 
{ 
    $state.go("tab.food-sandwich"); 
    $http.get('http://xxxxxx/connect.php?getSandwich=1').then(function successCallback(response) 
    {  
     $scope.sandwich = Foods.appendAll(response.data); 
     console.log(response); 
    }, function errorCallback(response) { 
      var confirmPopup = $ionicPopup.confirm({ 
       title: 'Nicht erfolgreich', 
       cancelText: 'Nein', 
       okText: 'Ja', 
       okType: 'button-dark', 
       cancelType: 'button-positive' 
      }); 
     }); 
}// END OF FUNCTION $scope.getSanwich() 

4. app.js

.state('tab.foods', { 
    cache: false, 
    url: '/addTable/foods', 
    views: { 
     'tab-tables': { 
      templateUrl: 'templates/foods.html', 
      controller: 'TablesCtrl' 
     } 
    } 
}) 
.state('tab.food-snack', { 
    cache: false, 
    url: '/addTable/foods/food-snack', 
    views: { 
     'tab-tables': { 
      templateUrl: 'templates/food-snack.html', 
      controller: 'TablesCtrl' 
     } 
    } 
}) 

5.services.js

.factory('Foods', function() { 
    var foods = []; 
    return { 
    appendAll: function(array) { 
     for(var i = 0 ; i < array.length; i++) 
     { 
      foods.splice(array[i]); 
     } 
     for (var i = 0; i < array.length; i++) 
     { 
      foods.unshift(array[i]); 
     } 
     return foods; 
    }, 
    getAll: function() { 
     return foods; 
    }, 
    remove: function(food) { 
     foods.splice(foods.indexOf(food), 1); 
    }, 
    removeAll: function(array) { 
     for(var i = 0 ; i < array.length; i++) 
     { 
      foods.splice(array[i]); 
     } 
    }, 
    get: function(foodId) { 
     for (var i = 0; i < foods.length; i++) { 
      if (foods[i].id === parseInt(foodId)) { 
       return foods[i]; 
      } 
     } 
     return null; 
    } 

Répondre

0

Le contrôleur vous partagiez est le contrôleur de la nourriture. html je suppose et c'est ajouter la liste des collations à sa portée qui n'est pas la portée de snack.html. Dans le contrôleur de nourriture juste changer l'état et dans le contrôleur de collations appelez le service pour obtenir les collations.