NativeScript ObservableArray和ListView(在带有RadSideDrawer的tabview中)-需要帮助吗

NativeScript 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

我逐渐熟悉NativeScript,但最近我尝试在TabView中实现一个ListView,该TabView位于RadSideDrawer主内容中。在实现这一点时,我现在对可观察数组和填充ListView有些迷茫。我试过看教程,但不知怎么的,我觉得我做错了什么,如果有人能帮我解决这个问题,我将不胜感激

这是我的密码:

landing.xml

  <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="&#xf003; All" >
            <TabViewItem.view>
              <alln:allnoti />
            </TabViewItem.view>
          </TabViewItem>
          <TabViewItem title="&#xf0a2; Notifications" >
            <TabViewItem.view>
              <notifications:notifi />
            </TabViewItem.view>
          </TabViewItem>
          <TabViewItem title="&#xf044; 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">