0
バインドされたテキストフィールドから値を取得できません。タブテンプレートを使用しました。 Microsoft Androidエミュレータで。メインタブページビューモデルに追加する必要があるものがありますか?Nativescriptタブページのテキストフィールド
何らかの理由viewModel.get( "検索")を見る
<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;
モデル は何も返しません。ボタンがうまくいきます。
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;
}
this.get( "search")を使用して差はありません 申し訳ありませんが、私はsvmを使用するクリックイベントを貼り付けませんでした。私はそれを追加します。その場所にコンポーネントを使用する別の方法はありますか? – Jason
これだけです。あなたのコードの背後には、現在の行の代わりに 'component.bindingContext = svm;'と書いてください。 –
実際にそれも試みました。私のonLoaded関数がヒットしないか、少なくとも私のブレークポイントに当たっていないように見えます。だからバインディングは決して起こらない。 – Jason