Je ne peux pas obtenir la valeur de mon champ de texte lié. J'ai utilisé le modèle d'onglet. Sur l'émulateur Microsoft Android. Y at-il quelque chose que j'ai besoin d'ajouter à l'onglet principal?Page de l'onglet Nativescript textfield
Voir
<GridLayout class="page-content">
<StackLayout orientation="vertical">
<Label class="page-icon fa" text=""></Label>
<TextField id="txtSearch" text="{{ search }}" hint="Search" keyboardType="email" autocorrect="false" autocapitalizationType="none" />
<Button text="Sign in" tap="searchClick" />
</StackLayout>
</GridLayout>
var SearchViewModel = require("./search-view-model");
var svm = new SearchViewModel();
function onLoaded(args) {
var component = args.object;
component.bindingContext = new SearchViewModel();
}
exports.searchClick = function() {
svm.searches()
.catch(function(error) {
console.log(error);
dialogsModule.alert({
message: "Unfortunately we could not find your account.",
okButtonText: "OK"
});
return Promise.reject();
})
.then(function() {
//frameModule.topmost().navigate("views/list/list");
});
};
exports.onLoaded = onLoaded;
modèle Pour une raison viewModel.get ("search") ne renvoie rien. Le bouton se déclenche très bien.
const observableModule = require("data/observable");
var fetchModule = require("fetch");
//Info is the returning object
function SearchViewModel(info) {
info = info || {};
var viewModel = new observableModule.fromObject({
search: info.search || ""
});
viewModel.searches = function() {
var test = viewModel.get("search");
return fetchModule.fetch(config.apiUrl + viewModel.get("search"), {
method: "GET",
headers: {
"Content-Type": "application/json"
}
})
.then(handleErrors)
.then(function(response) {
return response.json();
})
.then(function(data) {
config.token = data.Result.access_token;
});
};
return viewModel;
}
Aucune différence avec this.get ("search") Désolé, je n'ai pas collé l'événement click qui utilise le svm. Je vais l'ajouter. Y a-t-il une autre façon d'utiliser un composant à sa place? – Jason
Faites-le. Dans votre code, écrivez 'component.bindingContext = svm;' à la place de la ligne courante –
Effectivement essayé aussi. On dirait que ma fonction onLoaded n'est jamais touchée ou du moins qu'elle n'atteint pas mon point de rupture. Donc, les liaisons ne se produisent jamais. – Jason