2017-04-11 57 views
0

我有一個包含3張幻燈片的離子幻燈片組件。第一次運行應用程序時,所有三張幻燈片都會加載。然而,去另一個控制器,並且其中所述離子載玻片(使用$ state.go)回來的控制器,只顯示一個滑動,並且具有以下錯誤:

TypeError: Cannot read property '0' of undefined 

看到這種錯誤,我跟蹤它通過此行第一:

sharedProperties.setProperty($scope.cardNumbers[$scope.currentIdx] 
.CardNumber); 

,而不是該代碼獲取卡號:

var url = 'http://10.10.9.169/UserService3/WebService1.asmx'; 
    $http.get(url + '/getCardsbyUsername' + '?unameID=' + currentID).success(function(response) { 
    // stuff 
     console.log('response is jsonobj = ' + response); 
     var strObj = JSON.stringify(response).replace(/"(\w+)"\s*:/g, '$1:'); 
     var myObject = eval('(' + strObj + ')'); 
     $scope.cardNumbers = myObject; 
     console.log('response is jsonarr = ' + $scope.cardNumbers); 
    }) 
    .error(function(response) { 
    // error stuff 
     console.log('response error is = ' + response); 
    }); 

這裏是全碼:

$scope.currentIdx = 0; 

var currentID = sharedProperties3.getUserID(); 
console.log('current ID = ' + currentID); 

var url = 'http://10.10.9.169/UserService3/WebService1.asmx'; 
    $http.get(url + '/getCardsbyUsername' + '?unameID=' + currentID).success(function(response) { 
    // stuff 
     console.log('response is jsonobj = ' + response); 
     var strObj = JSON.stringify(response).replace(/"(\w+)"\s*:/g, '$1:'); 
     var myObject = eval('(' + strObj + ')'); 
     $scope.cardNumbers = myObject; 
     console.log('response is jsonarr = ' + $scope.cardNumbers); 
    }) 
    .error(function(response) { 
    // error stuff 
     console.log('response error is = ' + response); 
    }); 

    $scope.options1 = { 
    initialSlide: 0, 
    onInit: function(slider1) 
    { 
     $scope.slider1 = slider1; 
     sharedProperties.setProperty($scope.cardNumbers[$scope.currentIdx].CardNumber); 

    }, 
    onSlideChangeEnd: function(slider1) 
    { 
     console.log('The active index is ' + slider1.activeIndex); 
     $scope.currentIdx = slider1.activeIndex; 
     console.log('The active card is ' + $scope.cardNumbers[$scope.currentIdx].CardNumber); 
     sharedProperties.setProperty($scope.cardNumbers[$scope.currentIdx].CardNumber); 
    } 
    }; 

    $scope.options2 = { 
    direction: 'vertical', 
    slidesPerView: '1', 
    pagination: false, 
    initialSlide: 1, 
    showNavButtons: false 
    }; 

我該如何讓它首先通過$ http.get代碼塊?

回答

0

我注意到我不止一次加載了angularjs,所以我擺脫了額外的代碼,在我的index.html中調用了angularjs,它工作。