我如何在 nativescript 中获取文本字段值
How do i get textfield value in nativescript
我正在尝试从 nativescript 核心中的文本字段中获取文本。
let textField = args.object;
const yourSearch = textField.getViewById("requiredSkill").text;
我得到的错误是:无法读取未定义的属性'text'
请帮忙
NativeScript 视图 XML TextView
<TextView editable="true" id="requiredSkill"></TextView>
带有 tap
事件的简单按钮
<Button text="Button" tap="{{ onButtonTap }}" />
点击事件的 JavaScript 代码
var viewModel = observableModule.fromObject({
onButtonTap: function (btargs) {
let srcButton = btargs.object;
const yourSearch = srcButton.page.getViewById("requiredSkill").text;
}
});
getViewById
应在 <Page>
模型上使用以搜索整个页面
或者你必须有一个 container/layout 应该有一个 id,首先使用 getViewById
找到布局然后再次在该布局中执行另一个 getViewById
以找到 TextView
所以回答你的问题,如果是按钮点击事件,获取按钮,获取按钮的页面,通过Id找到view
srcButton.page.getViewById
谢谢@Dickens,我正在为 NativeScript playground 添加一个具体示例:
home-page.js:
var HomeViewModel = require("./home-view-model");
var homeViewModel = new HomeViewModel();
function pageLoaded(args) {
var page = args.object;
page.bindingContext = homeViewModel;
}
exports.pageLoaded = pageLoaded;
home-page.xml:
<Page loaded="pageLoaded" xmlns="http://www.nativescript.org/tns.xsd">
<ActionBar title="Home">
</ActionBar>
<ScrollView>
<StackLayout orientation="vertical" width="210" height="210"
backgroundColor="lightgray">
<TextField id="uspas" hint="Enter text..." text="aaa,bbb"/>
<Button text="Login" tap="{{ login }}" />
</StackLayout>
</ScrollView>
</Page>
home-view-model.js:
var observableModule = require("tns-core-modules/data/observable");
function HomeViewModel() {
var viewModel = observableModule.fromObject({
login: function (buttonArguments) {
let srcButton = buttonArguments.object;
const testo = srcButton.page.getViewById("uspas").text;
var uspasCouple = testo.split(",");
us = uspasCouple[0];
pas = uspasCouple[1];
console.log("Hai scritto:", us, pas);
},
});
return viewModel;
}
module.exports = HomeViewModel;
我正在尝试从 nativescript 核心中的文本字段中获取文本。
let textField = args.object;
const yourSearch = textField.getViewById("requiredSkill").text;
我得到的错误是:无法读取未定义的属性'text'
请帮忙
NativeScript 视图 XML TextView
<TextView editable="true" id="requiredSkill"></TextView>
带有 tap
事件的简单按钮
<Button text="Button" tap="{{ onButtonTap }}" />
点击事件的 JavaScript 代码
var viewModel = observableModule.fromObject({
onButtonTap: function (btargs) {
let srcButton = btargs.object;
const yourSearch = srcButton.page.getViewById("requiredSkill").text;
}
});
getViewById
应在 <Page>
模型上使用以搜索整个页面
或者你必须有一个 container/layout 应该有一个 id,首先使用 getViewById
找到布局然后再次在该布局中执行另一个 getViewById
以找到 TextView
所以回答你的问题,如果是按钮点击事件,获取按钮,获取按钮的页面,通过Id找到view
srcButton.page.getViewById
谢谢@Dickens,我正在为 NativeScript playground 添加一个具体示例:
home-page.js:
var HomeViewModel = require("./home-view-model");
var homeViewModel = new HomeViewModel();
function pageLoaded(args) {
var page = args.object;
page.bindingContext = homeViewModel;
}
exports.pageLoaded = pageLoaded;
home-page.xml:
<Page loaded="pageLoaded" xmlns="http://www.nativescript.org/tns.xsd">
<ActionBar title="Home">
</ActionBar>
<ScrollView>
<StackLayout orientation="vertical" width="210" height="210"
backgroundColor="lightgray">
<TextField id="uspas" hint="Enter text..." text="aaa,bbb"/>
<Button text="Login" tap="{{ login }}" />
</StackLayout>
</ScrollView>
</Page>
home-view-model.js:
var observableModule = require("tns-core-modules/data/observable");
function HomeViewModel() {
var viewModel = observableModule.fromObject({
login: function (buttonArguments) {
let srcButton = buttonArguments.object;
const testo = srcButton.page.getViewById("uspas").text;
var uspasCouple = testo.split(",");
us = uspasCouple[0];
pas = uspasCouple[1];
console.log("Hai scritto:", us, pas);
},
});
return viewModel;
}
module.exports = HomeViewModel;