首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nativescript自定义组件子

Nativescript自定义组件子
EN

Stack Overflow用户
提问于 2017-03-06 10:57:30
回答 1查看 277关注 0票数 0

嗨,我正在尝试使用这样的自定义组件。但是我不能使用getViewById来访问元素,它返回的是未定义的。并且无法捕捉到main-page.js上的事件。

Sidemenu.xml

代码语言:javascript
复制
<dpg:DrawerPage
    xmlns:dpg="nativescript-telerik-ui/sidedrawer/drawerpage"
    xmlns:drawer="nativescript-telerik-ui/sidedrawer"
    xmlns:sidemenu="components/sidemenu"
    xmlns="http://www.nativescript.org/tns.xsd">

    <dpg:DrawerPage.sideDrawer >
        <drawer:RadSideDrawer id="sideDrawer">
            <drawer:RadSideDrawer.drawerContent>
                <StackLayout cssClass="drawerContent">

                    <StackLayout cssClass="headerContent" style="width: 80%;">
                        <Label text="Navigation Menu"/>
                    </StackLayout>
                    <ScrollView>
                        <StackLayout cssClass="drawerMenuContent">
                            <Label text="Primary" cssClass="drawerSectionHeader" />
                            <Label text="Social" cssClass="drawerSectionItem" />
                            <Label text="Promotions" cssClass="drawerSectionItem" />
                            <Label text="Labels" cssClass="drawerSectionHeader" />
                            <Label text="Important" cssClass="drawerSectionItem" />
                            <Label text="Starred" cssClass="drawerSectionItem" />
                            <Label text="Sent Mail" cssClass="drawerSectionItem" />
                            <Label text="Drafts" cssClass="drawerSectionItem" />
                        </StackLayout>
                    </ScrollView>

                    <Button text="Close Drawer" tap="tap"/>

                </StackLayout>
            </drawer:RadSideDrawer.drawerContent>
        </drawer:RadSideDrawer>
    </dpg:DrawerPage.sideDrawer>


</dpg:DrawerPage>

main-page.xml

代码语言:javascript
复制
<sidemenu:sidemenu xmlns:sidemenu="components/sidemenu"
    class="page" loaded="onLoaded" navigatedTo="onNavigatedTo">

    <StackLayout orientation="vertical">

            <Button text="Button 1" id="btn1">

    </StackLayout>

</sidemenu:sidemenu>

main-page.js

代码语言:javascript
复制
exports.onLoaded = function(args){

    page = args.object;
        page.bindingContext = viewModel;

        console.log(page.getViewById("btn1")); //undefined

};
EN

回答 1

Stack Overflow用户

发布于 2017-03-06 13:06:02

你能像这样试试吗?

代码语言:javascript
复制
var view = require("ui/core/view");

exports.onLoaded = function (args) {
  var page = args.object;
  var button1 = view.getViewById(page, "btn1");
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42623811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档