NativeScript ObservableArray和ListView(在带有RadSideDrawer的tabview中)-需要帮助吗
我逐渐熟悉NativeScript,但最近我尝试在TabView中实现一个ListView,该TabView位于RadSideDrawer主内容中。在实现这一点时,我现在对可观察数组和填充ListView有些迷茫。我试过看教程,但不知怎么的,我觉得我做错了什么,如果有人能帮我解决这个问题,我将不胜感激 这是我的密码: landing.xmlNativeScript ObservableArray和ListView(在带有RadSideDrawer的tabview中)-需要帮助吗,listview,observable,nativescript,Listview,Observable,Nativescript,我逐渐熟悉NativeScript,但最近我尝试在TabView中实现一个ListView,该TabView位于RadSideDrawer主内容中。在实现这一点时,我现在对可观察数组和填充ListView有些迷茫。我试过看教程,但不知怎么的,我觉得我做错了什么,如果有人能帮我解决这个问题,我将不胜感激 这是我的密码: landing.xml <page xmlns="http://schemas.nativescript.org/tns.xsd" xmlns:drawer="n
<page
xmlns="http://schemas.nativescript.org/tns.xsd"
xmlns:drawer="nativescript-telerik-ui/sidedrawer"
xmlns:widgets="common/widgets"
xmlns:notifications="pages/landing/notifications"
xmlns:requests="pages/landing/requests"
xmlns:alln="pages/landing/allnoti"
loaded="loaded">
<page.actionBar>
<actionBar title="iStart">
<!--- <action-bar.titleView>
<StackLayout orientation="horizontal" ios:horizontalAlignment="center" android:horizontalAlignment="left">
<!--<Image src="res://acicon" class="action-image" />
<Label text=" iStart" class="action-label" />
</StackLayout>
</action-bar.titleView> -->
<actionBar.actionItems>
<android>
<actionItem android.position="actionBarIfRoom" tap="toggleDrawer" icon="res://ic_menu" />
</android>
<ios>
<actionItem icon="res://ic_menu" ios.position="right" tap="toggleDrawer" />
</ios>
</actionBar.actionItems>
</actionBar>
</page.actionBar>
<drawer:rad-side-drawer id="newdrawer" drawerContentSize="180" drawerLocation="right">
<drawer:rad-side-drawer.mainContent>
<!-- Landing page contents -->
<TabView class="tabview-look" style="font-family: FontAwesome; font-size: 15;" selectedColor="blue">
<TabView.items>
<TabViewItem title=" All" >
<TabViewItem.view>
<alln:allnoti />
</TabViewItem.view>
</TabViewItem>
<TabViewItem title=" Notifications" >
<TabViewItem.view>
<notifications:notifi />
</TabViewItem.view>
</TabViewItem>
<TabViewItem title=" Requests" >
<TabViewItem.view>
<requests:request />
</TabViewItem.view>
</TabViewItem>
</TabView.items>
</TabView>
</drawer:rad-side-drawer.mainContent>
<drawer:rad-side-drawer.drawerContent>
<widgets:drawer-content />
</drawer:rad-side-drawer.drawerContent>
</drawer:rad-side-drawer>
</page>
着陆点
import {BasePage} from "../../common/BasePage";
import {Observable, EventData} from "data/observable";
import {View} from "ui/core/view";
import observableM = require("data/observable");
import observableArrayModule = require("data/observable-array");
import {fromObject} from "data/observable";
let pageData = observableM.fromObject({
'notificationList': new observableArrayModule.ObservableArray([
{title: "Title1", body: "Body1"},
{title: "Title2", body: "Body2"}
])
});
let vm = new Observable();
class LandingPage extends BasePage{
mainContentLoaded(args:EventData){
//set the bindingContext for the LandingPage content here
let view = <View>args.object;
view.bindingContext = pageData;
}
}
export = new LandingPage();
从“../../common/BasePage”导入{BasePage};
从“data/Observable”导入{Observable,EventData};
从“ui/core/View”导入{View};
导入可观察项=要求(“数据/可观察项”);
导入observableArrayModule=require(“数据/可观测数组”);
从“数据/可观察”导入{fromObject};
让pageData=Observableem.fromObject({
“notificationList”:新的observableArrayModule.ObservableArray([
{标题:“标题1”,正文:“正文1”},
{标题:“标题2”,正文:“正文2”}
])
});
设vm=新的可观测();
类LandingPage扩展了BasePage{
mainContentLoaded(参数:EventData){
//在此处设置登录页内容的bindingContext
让view=args.object;
view.bindingContext=pageData;
}
}
导出=新登录页();
allnoti.xml
<stack-layout loaded="onViewLoaded" unloaded="onViewUnloaded"
xmlns:lv="nativescript-telerik-ui/listview" >
<!-- entirety of the tab's content -->
<GridLayout>
<ListView items="{{notificationList}}">
<ListView.itemTemplate>
<stack-layout>
<label text="{{title}}" horizontalAlignment="left" verticalAlignment="center" />
<label text="{{body}}" horizontalAlignment="left" verticalAlignment="center" />
</stack-layout>
</ListView.itemTemplate>
</ListView>
</GridLayout>
</stack-layout>
我希望在listview中有一个数据绑定,但由于层次结构,我真的很困惑。抱歉,如果这是一个新手问题,希望有人能帮忙。看来,添加mainContentLoaded解决了这个问题
<TabView class="tabview-look" style="font-family: FontAwesome; font-size: 15;" selectedColor="blue" loaded="mainContentLoaded">
添加mainContentLoaded似乎解决了这个问题
<TabView class="tabview-look" style="font-family: FontAwesome; font-size: 15;" selectedColor="blue" loaded="mainContentLoaded">