2017-01-08 3 views
0

私のng-repeatに問題があります。 ng-clickをクリックした後、ng-repeatがロードされない場合、ページは空です。私はhtmlファイルを "food.html"と呼びますが、ng-click()を呼びます。さらに、ng-repeatと少なくとも私の "コントローラ"を含む "food-snack.html"ファイルがあります。 js "をクリックしてng-clickの機能を呼び出します。私は誰かが私を助けることができるといいです私の混乱する表記に申し訳ありませんが、私の最初のブログです。ng-click後にng-repeatが読み込まれない

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() 
共有0

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; 
    } 

答えて

0

コントローラは、食品のコントローラです。 html私は推測し、snack.htmlのスコープではないスコープにスナップリストを追加しています。フードコントローラーでは、単に状態を変更し、スナックのコントローラーでスナックを入手するサービスを呼び出します。

関連する問題