I'm trying to following the samples from http://docs.telerik.com however mine will go to the detail page but with no picture and no errors. Please let me know what I'm missing. Thank you so much.
package.json
{
"description": "NativeScript Application",
"license": "SEE LICENSE IN <your-license-filename>",
"readme": "NativeScript Application",
"repository": "<fill-your-repository-here>",
"nativescript": {
"id": "org.nativescript.BasicNew",
"tns-ios": {
"version": "3.1.0"
},
"tns-android": {
"version": "3.1.1"
}
},
"dependencies": {
"nativescript-telerik-ui": "^3.0.4",
"nativescript-theme-core": "~1.0.2",
"tns-core-modules": "~3.1.0"
},
"devDependencies": {
"babel-traverse": "6.25.0",
"babel-types": "6.25.0",
"babylon": "6.17.4",
"lazy": "1.0.11"
}
}
main-page.xml
<Page xmlns="http://schemas.nativescript.org/tns.xsd" xmlns:lv="nativescript-telerik-ui/listview" navigatingTo="onNavigatingTo">
<ActionBar title="Rlv Horizontal Scroll"/>
<GridLayout rows="auto, *">
<Button text="Go To Next Page" textWrap="true" tap="tapAction1" />
<lv:RadListView id="listView" items="{{ myItems }}" selectionBehavior="Press" itemSelected="onItemSelected" row="1">
<lv:RadListView.listViewLayout>
<lv:ListViewLinearLayout scrollDirection="Horizontal" itemHeight="100" itemWidth="130"/>
</lv:RadListView.listViewLayout>
<lv:RadListView.itemTemplate>
<StackLayout orientation="horizontal">
<!-- Need loadMode="async" for Android or get OutOfMemory error -->
<Image src="{{ myPaths }}" decodeWidth="400" decodeHeight="400" loadMode="async" height="100" width="130" />
</StackLayout>
</lv:RadListView.itemTemplate>
</lv:RadListView>
</GridLayout>
</Page>
main-page.js
var fs = require("file-system");
var frameModule = require("ui/frame");
var observable = require("data/observable");
var ObservableArray = require("data/observable-array").ObservableArray;
var myImages = new ObservableArray();
var viewModel = new observable.Observable();
viewModel.set("myItems", myImages);
function readFiles() {
var documents = fs.knownFolders.currentApp();
var myFolder = documents.getFolder("Wines");
var array = myFolder.getEntitiesSync();
array.forEach(function (element) {
myImages.push({myPaths: element._path});
});
}
var listView;
exports.onItemSelected = function(arg) {
var selectedItems = listView.getSelectedItems();
console.log(selectedItems) //returns [object Object]
var detailPic;
for (var i = 0; i < selectedItems.length; i++) {
detailPic = selectedItems[i].itemObject; //goes to detail page, no pic, no errors
}
console.log(detailPic) //returns undefined
frameModule.topmost().navigate({
moduleName: "detail-page",
bindingContext: {detailPic}
});
}
//Tap event tapAction1 = nav to detail page
//Test nav to detail-page, this works but only in iOS
exports.tapAction1 = function() {
var detailPic = "~/Wines/wine1.jpg"
frameModule.topmost().navigate({
moduleName: "detail-page",
bindingContext: {detailPic}
});
}
exports.onNavigatingTo = function(args) {
readFiles();
var page = args.object;
listView = page.getViewById("listView");
page.bindingContext = viewModel;
}
detail-page.xml
<Page navigatingTo="onNavigatingTo">
<ActionBar title="">
<NavigationButton text="Go Back" />
</ActionBar>
<Image src="{{ detailPic }}" stretch="aspectFill"/>
</Page>