2017-10-21 15 views
0

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で動作するが、古いものでは動作しないのか分からない。

答えて

0

ブラウザのバージョンにはまだ何があるのか​​わかりませんが、テンプレートにng-ifを使用した結果、問題が発生したようです。私はそれらをng-showに変更すると、問題は消えました。

関連する問題