Как обновить элемент списка RadListView в Nativescript с помощью JavaScript - PullRequest
0 голосов
/ 07 марта 2019

Я пытаюсь создать пример приложения в Nativescript, используя Javascript. У меня есть RadListView, где список заполняется. В моем списке есть различные элементы, такие как имя, изображение, описание и значок избранного. Здесь, когда я нажимаю на значок избранного, мне нужно изменить статус значка для определенного элемента в списке. Может кто-нибудь помочь, пожалуйста, как я могу это сделать?

автомобили-список-page.js

function onNavigatingTo(args) {
    console.log('car list page Loaded......:');
    console.log(args.object);  
    const page = args.object;    
    page.bindingContext = new CarsListViewModel(args);   

}  

автомобиль-View-model.js

    const observableModule = require("tns-core-modules/data/observable");
const httpModule = require("http");
const ObservableArray = require("tns-core-modules/data/observable-array").ObservableArray;
/* const CarService = require("./shared/car-service");  */

var uuid = require('platform').device.uuid;
console.log("uuid: "+uuid);

var viewModel = new observableModule.Observable();
viewModel.set("items", []); // initial value


function CarsListViewModel(args) {

    console.log('CarsListViewModel argsssss');
    console.dir(args.object);

    var page = args.object;

    var gotData = page.navigationContext;
    console.log(gotData.idx);
    console.log(gotData.name);
    console.log(gotData.type);

    viewModel.set('isLoading', false);
    viewModel.set('name', gotData.type);
    viewModel.set('description', gotData.name);

    var apiURL = 'urlgoeshere';

    fetch(apiURL)  
      .then(response => {
        console.log('resppppp......');   
        return response.json();   
      })
      .then(function(r) { 
        //console.log(r.data);
        viewModel.set('items', r.data);
        console.log('View Model Updated......');
        const firstItem = viewModel.getItem(0);
        console.log('View Model Updated......'+firstItem);
      });    
     return viewModel;
}  

module.exports = CarsListViewModel;

1 Ответ

0 голосов
/ 07 марта 2019

Я не знаю точно, как это переводится в JavaScript, но вы должны использовать ObservableArray вместо просто [].

Тогда вы захотите сделать viewModel.get('items').push(...r.data) или что-то подобное.

...