Camille Lagrama
Camille Lagrama

Reputation: 77

Nativescript can't get slide event

how can I get the slide event for slider ? I tried

slider.on('slide', function(){
  console.log('slide!');
});

and

slider.on('change', function(){
  console.log('slide!');
});

but it doesnt work :(( Thanks in advance.

Upvotes: 0

Views: 1123

Answers (1)

Emil Oberg
Emil Oberg

Reputation: 4046

Bind the slide value to an observable object and then listen to the propertyChangeEvent of that object.

Example

Given you have an XML looking like this:

<Page loaded="pageLoaded">
    <StackLayout>
        <Slider value="{{ sliderValue }}" />
    </StackLayout>
</Page>

Then you can write your binding and event like this:

var observable = require("data/observable");

function pageLoaded(args) {
    var page = args.object;
    var viewModel = new observable.Observable();
    viewModel.set('sliderValue', 42);
    page.bindingContext = viewModel;

    viewModel.on(observable.Observable.propertyChangeEvent, function(propertyChangeData){
        //Do your magic here
    });

}
exports.pageLoaded = pageLoaded;

Data bindings and Observable Objects are key parts of NativeScript. I highly recommend reading the documentation and get yourself familiar with them:

Upvotes: 2

Related Questions