2016-12-16 18 views
0

Javascriptをリピータ内の外部要素にアクセスする方法は?上記のスニペットで

var pageData = new Observable({ 
    appointmentsList: appointmentsList, 
    user_role: '' 
}); 

exports.onLoaded = function (args) { 
    page = args.object; 
    page.bindingContext = pageData; 
    pageData.set('user_role', appSettings.getString('role')); 

XML

<Repeater items="{{appointmentsList.booking_dates.bookings}}"> 
    <Repeater.itemsLayout> 
     <StackLayout class="appointment-rows" /> 
    </Repeater.itemsLayout> 
    <Repeater.itemTemplate> 
     <StackLayout> 
      <WrapLayout visibility="{{ user_role === 'agency' ? 'visible' : 'collapse' }}"> 
       <Label text="{{user_name}}" class="row-client-name row-client-name-new" /> 
      </WrapLayout> 
     </StackLayout> 
    </Repeater.itemTemplate> 
</Repeater> 

問題は、私はRepeateruser_roleにアクセスすることはできませんよということです。 Repeaterの内部の外部要素にアクセスする方法を誰かに教えてもらえますか?

ありがとうございました。

答えて

2

このhttps://docs.nativescript.org/core-concepts/data-binding#example-4-creating-listview-child-items-based-on-the-itemtemplateに基づいて、あなたはこのような何か試すことができます:あなたは$parentまたは$parents[]プロパティを使用する必要が

<WrapLayout visibility="{{$parents['Repeater'].user_role,$parents['Repeater'].user_role === 'agency' ? 'visibile' : 'collapse' }}"> 

またはこのよう

<WrapLayout visibility="{{$parents['Page'].user_role,$parents['Page'].user_role === 'agency' ? 'visibile' : 'collapse' }}"> 
1

を。

私は信じている:

<WrapLayout visibility="{{ $parent.user_role, $parent.user_role === 'agency' ? 'visible' : 'collapse' }}">

は動作するはずです。しかし、これはリピーターにあるので、私はそれが親の束縛に変わる何もしないと信じています。この機能の <WrapLayout visibility="{{ $parents['Page'].user_role, $parents['Page'].user_role === 'agency' ? 'visible' : 'collapse' }}">

NativeScriptドキュメント: - それが動作しない場合がありますが、単純にこれを行うことができますhttp://docs.nativescript.org/core-concepts/data-binding#binding-to-a-parent-binding-context

+0

を私は '' 'リピータの親でRadListView'を持っています。それは重要ですか? –

+1

はい、$ parents ['Page']を使ってアクセスする必要があります。 $ parentは、RadListViewにバインドされているものまで、1つのレベルだけ上に移動します。 – Nathanael

+0

これは 'user_role'の取得時にうまくいくと思いますが、' $ parents ['Page']の条件を評価することはできません。user_role === 'agency'? 'visible': 'collapse'' –

関連する問題