【问题标题】:code passes through $scope.options first instead of $http.get代码首先通过 $scope.options 而不是 $http.get
【发布时间】:2017-04-11 17:50:19
【问题描述】:

我有一个带有 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 代码块?

【问题讨论】:

    标签: angularjs ionic-framework


    【解决方案1】:

    我注意到我不止一次加载了 angularjs,所以我去掉了 index.html 中调用 angularjs 的额外代码,它起作用了。

    【讨论】:

      猜你喜欢
      • 2017-12-21
      • 1970-01-01
      • 2019-10-06
      • 2015-02-25
      • 2011-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多