0

I am implementing an Slide Box and tried to use SlideHasChanged Event.

There are some examples in the internet but I have always the same error.

My APP:

    <ion-slide-box on-slide-changed="slideHasChanged($index)">
      <ion-slide>
        <div class="box blue"><h1>BLUE</h1></div>
      </ion-slide>
      <ion-slide>
        <div class="box yellow"><h1>YELLOW</h1></div>
      </ion-slide>
      <ion-slide>
        <div class="box pink"><h1>PINK</h1></div>
      </ion-slide>
    </ion-slide-box> 

I can switch the slides arround.

In my app.js:

$scope.slideChanged = function(index) {
switch(index) {
case 0:
console.log('I am on slide 0');
break;
case 1:
console.log('I am on slide 2');
break;
}
};

Now it should work. And write to the log.

But I always get an $scope is not defined error.

UPDATE:

app.js

angular.controller('appName', function($scope) {
$scope.slideChanged = function(index) {
switch(index) {
  case 0:
    console.log('I am on slide 0');
    break;
  case 1:
    console.log('I am on slide 1');
    break;
}
};
});

HTML

 <div ng-controller="controller1">
      <ion-slide-box on-slide-changed="slideHasChanged($index)">
        <ion-slide>
          <div class="box blue"><h1>BLUE</h1></div>
        </ion-slide>
        <ion-slide>
          <div class="box yellow"><h1>YELLOW</h1></div>
        </ion-slide>
        <ion-slide>
          <div class="box pink"><h1>PINK</h1></div>
        </ion-slide>
      </ion-slide-box>
      </div>

2 Answers2

0

You need to defined a controller and inject $scope variable then its working fine

Eg code

angular.module('appName').controller('controllerName', function($scope) {
  $scope.slideChanged = function(index) {
    switch(index) {
      case 0:
        console.log('I am on slide 0');
        break;
      case 1:
        console.log('I am on slide 2');
        break;
    }
  };
});

HTML

<div ng-controller="controllerName">
    <ion-slide-box on-slide-changed="slideHasChanged($index)">
      <ion-slide>
        <div class="box blue"><h1>BLUE</h1></div>
      </ion-slide>
      <ion-slide>
        <div class="box yellow"><h1>YELLOW</h1></div>
      </ion-slide>
      <ion-slide>
        <div class="box pink"><h1>PINK</h1></div>
      </ion-slide>
    </ion-slide-box>
</div>
Gaurav Kumar Singh
  • 1,550
  • 3
  • 11
  • 31
0

app.js

app.controller('myController', function($scope,$ionicPlatform,$state) {

$scope.slideHasChanged = function($index) {
    switch($index) {
      case 0:
        console.log('I am on slide 0');
        break;
      case 1:
        console.log('I am on slide 1');
        break;
    }
};

});

html

 <div ng-controller="myController">
      <ion-slide-box on-slide-changed="slideHasChanged($index)">
        <ion-slide>
          <div style="width: 100px;height: 100px" class="box blue"><h1>BLUE</h1></div>
        </ion-slide>
        <ion-slide>
          <div style="width: 100px;height: 100px" class="box yellow"><h1>YELLOW</h1></div>
        </ion-slide>
        <ion-slide>
          <div style="width: 100px;height: 100px" class="box pink"><h1>PINK</h1></div>
        </ion-slide>
      </ion-slide-box>
      </div>
raj peer
  • 694
  • 6
  • 13