2017-04-11 6 views
0

私は3つのスライドを持つイオンスライドコンポーネントを持っています。アプリを初めて実行すると、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を呼び出す余分なコードを取り除いていました。

関連する問題