Я новичок в Nativescript и пытаюсь разработать приложение для Android. Я отправляю запрос GET и из ответа, который я создал Listview.Now, я пытаюсь отправить запрос POST, когда элемент из Listview выбран. Но я не могу связать контекст. Итак, мой запрос POST не работает должным образом. Мой вопрос в том, как я могу привязать контекст listview.Nativescript: bindingContext to ListView
Js Контроллер:
var CategoryViewModel = require("../../shared/category_view_model");
var fetchModule = require("fetch");
var dialogsModule = require("ui/dialogs");
var observableModule = require("data/observable")
var page;
var data;
var categoryList = new CategoryViewModel([]);
var pageData = new observableModule.fromObject({
categoryList: categoryList
});
var UserViewModel = require("../../shared/brand_view_model");
var user = new UserViewModel();
exports.loaded = function(args) {
page = args.object;
page.bindingContext = pageData;
categoryList.empty();
categoryList.load();
};
function getBrand() {
user.register();
}
exports.brand=function (args) {
getBrand();
}
Вид:
<Page loaded="loaded">
<GridLayout>
<ListView items="{{ categoryList }}" itemTap="brand">
<ListView.itemTemplate>
<Label text="{{ category }}" horizontalAlignment="left" verticalAlignment="center" />
</ListView.itemTemplate>
</ListView>
</GridLayout>
</Page>
View-модель для запроса POST:
var fetchModule = require("fetch");
var Observable = require("data/observable").Observable;
var observableArray = require("data/observable-array");
var goodsList = new observableArray.ObservableArray([]);
var pageData = require("data/observable").Observable;
function user(info) {
info = info || {};
// You can add properties to observables on creation
var viewModel = new Observable({
category: info.category || "",
});
viewModel.register = function() {
fetch("http://10.0.2.2:8000/user_signup", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
category: viewModel.get("category"),
})
}).then(r => { return r.json(); }).then(function (r) {
console.log("Success");
}, function (e) {
console.log("Error occurred " + e);
});
};
return viewModel;
}
function handleErrors(response) {
if (!response.ok) {
console.log(JSON.stringify(response));
throw Error(response.statusText);
}
return response;
}
module.exports = user;
Вы можете написать то, что в каком контексте вы получили от функции? или какая ошибка, если что-то есть? –
Как вы видите, я не привязываю контекст для выбора элемента listview. Я не знаю, как. Я уже связываю контекст для создания listview в функции export.loaded. Но как связать контекст, когда элемент выбрано? И ошибка в том, что мои данные сохраняются на моем сервере, но они пусты. –
вполне возможно, поскольку эта строка '; category: viewModel.get (" category ")' из View-model равна 'category:" ",' лучше всего было бы передать элемент bindindContext для регистрации функции из события события –