Android 4.xデバイスには問題がありますが、新しいデバイスには表示されません。理由は分かりませんが、誰かが助けてくれることを願っています。Angular ng-hide/ng-showディレクティブが動作しない
私はng-repeat
を使用してリストを持っています。各項目はng-include
を使用してテンプレートを動的に読み込みます(これは汎用の再利用可能なダイアログです)。
<ons-list-item ng-repeat="item in items | filter:filterItems(searchTerm) as filtered" ng-click="options.selectItem(item)" style="font-size: 14px; padding: 0;" tappable>
<div class="left" style="width: 100%;">
<ng-include src="'app/dialog/smartpick/'+options.itemTemplate" style="width: 100%; padding: 0px 16px;"></ng-include>
</div>
</ons-list-item>
現在、私に問題を引き起こしテンプレートは、このようなボタンが含まれていますopenDocument
が呼び出されると
<ons-button ng-click="openDocument(item, $event)" ng-if="item.SpecificationSpecDocumentID" style="float: right;font-size: 20px !important; padding: 0px 10px;">
<ons-icon icon="ion-image" ng-hide="item.opening" style="vertical-align: middle;"></ons-icon>
<ons-icon icon="ion-load-b" ng-show="item.opening" class="spin" style="vertical-align: middle;"></ons-icon>
</ons-button>
Debug: {{ item.opening }}
、それは(特に)、この処理を行います。
if(item.opening) return;
item.opening = true;
するとリスト要素がレンダリングされると、要素の両方が表示されます。 ng-show
/ng-hide
の指示は何もしていないようです。ボタンの下のデバッグテキストは、それぞれ真または偽を示しますが、クラスまたはスタイルはアイコン要素に追加されません。 (私は、ディレクティブをラッパー<span>
要素に移動して問題を切り離してみましたが、効果はありませんでした)。
これまで述べたように、これは新しいデバイスでうまく動作します。古いデバイスでディレクティブが失敗するか無視される原因についての手掛かりはありますか?
EDIT
ディレクティブは、そのスコープの外で動作するため、それは確かに、<ons-button>
要素内に作成された子スコープとは何かを持っています。私はちょうどそれが新しいwebviewsで動作するが、古いものでは動作しないのか分からない。