>source

Javascript를 사용하여 Nativescript로 샘플 응용 프로그램을 작성하려고합니다. 목록이 채워지는 RadListView가 있습니다. 이름, 이미지, 설명 및 즐겨 찾기 아이콘과 같은 다양한 요소가 목록에 있습니다. 여기서 즐겨 찾기 아이콘을 클릭하면 목록에서 특정 항목의 아이콘 상태를 변경해야합니다. 누구든지 내가 어떻게 할 수 있습니까?

cars-list-page.js

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

car-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

    JavaScript로 어떻게 번역되는지 정확히 모르겠지만 ObservableArray 를 사용해야합니다.  대신 [] 의 .

    그런 다음 viewModel.get('items').push(...r.data) 를하고 싶을 것입니다  또는 이와 유사한 것.

관련 자료

  • 이전 (Python/Selenium) 사전에 요소가 누락되었습니다
  • 다음 java - 연결된 목록에서 키가 주어진 노드를 삭제하십시오