0

スイッチコンポーネントで本当に奇妙な動作が見られます... ng-templateの内部で使用していますが、スイッチを切り替えるたびに、他の10番目のスイッチエレメント同様にスイッチオンされる。特に、 'checked'属性が動的ではないので、どこから来ているのか分かりません(下記参照)。誰もこの問題が発生していますか?また、他のスイッチがオンになっている(またはオフになっている、以前の状態に基づいています)場合でも、意図的にクリックされた実際のスイッチコンポーネントに対して、実際の "onInviteContact()"が1回だけトリガされます。NativeScript「スイッチ」コンポーネント

<RadListView 
     [items]="contacts" 
     class="list-group" width="100%"> 
    <ng-template tkListItemTemplate let-contact="item"> 
     <GridLayout class="contactItem" columns="2*, 3*, *, *" width="100%" orientation="horizontal"> 
      <Image col="0" *ngIf="contact.photo" [src]="contact.photo" 
        stretch="aspectFill" width="40%"></Image> 
      <Image col="0" *ngIf="!contact.photo" src="res://profile_image" 
        stretch="aspectFill" width="40%"></Image> 
      <Label col="1" class="nameLabel" [text]="contact.name"></Label> 
      <Switch col="2" class="switchElement" checked="false" 
        (checkedChange)="onInviteContact($event, contact)"></Switch> 
     </GridLayout> 
    </ng-template> 
</RadListView> 

答えて

1

あなたが見ることができるように、この動作にのみ可能な説明は、それが「自動」に

をリサイクルネイティブビュー

https://github.com/NativeScript/NativeScript/blob/699e6f5da8ad79f5795e3758365115d681a146c2/tns-core-modules/ui/switch/switch-common.ts#L10

の使用が設定されているされて私はと思われますネイティブ・ビューがラジオ・リスト・ビュー、またはリスト・ビューでリサイクルされると、スイッチをオンにし、リサイクルして使用したスイッチのネイティブ・ビューになります。

これを避けるには、checkedプロパティをobservableにバインドする必要があります。

希望する質問:

乾杯!

+0

お返事ありがとうございました。「あなたの意見に縛られている」と言ったら、どういう意味ですか? – Vladimir

+0

角度を使用しているので、 [checked] = "someVariable"のようになりますsomeVariableは観測可能です –

+0

私はあなたが正しいのだと思うが解決策はどちらもうまくいかない... – Vladimir

関連する問題