ng-click后不加载ng-repeat

时间:2017-01-08 21:12:46

标签: javascript html ionic-framework ng-repeat

我的ng-repeat有问题。 点击ng-click后,我的ng-repeat没有加载,页面为空。我有一个html文件调用“food.html”,其中我称之为ng-click(),我还有一个“food-snack.html”文件,其中包含ng-repeat和至少我的“控制器”。 js“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;
    }

1 个答案:

答案 0 :(得分:0)

您分享的控制器是食物的控制者。 html我猜,它是将小吃清单添加到它的范围,这不是snack.html的范围。在食品控制器中只需更改状态,在小吃控制器中调用服务即可获得零食。