ディレクティブを使用する "ホーム"コントローラがあります。コントローラ内の変数の値に応じて、ディレクティブテンプレートのボタンを表示/非表示にしたいと考えています。ng-showで動作しないディレクティブスコープ変数
これは私のディレクティブは次のようになります。
angular.module("goleadoresApp").directive("golNavbar", [golNavbar]);
function golNavbar() {
return {
restrict: "EA",
templateUrl: "views/templates/golNavbar.html",
scope: {
pageTitle: "@",
showLockIcon: "@"
}
};
}
そして、私のテンプレート:私のビューから
<div class="bar bar-header bar-balanced">
<h1 class="title">
<i class="gol-logo-icon icon ion-ios-football"></i>
<span ng-bind="pageTitle"></span>
</h1>
<!--For testing purposes: This variable renders as false, however, ng-show in line below doesn't work-->
{{showLockIcon}}
<!--ng-show won't work. Element would still be visible even if showLockIcon is false-->
<a class="button icon ion-locked pull-right second-right-button"
ng-show="showLockIcon"></a>
<a class="button icon ion-help-circled" href="#/help"></a>
</div>
、私はテンプレートを使用して、コントローラ変数(canPredictionsBePosted)を渡していることでしょうtrueまたはfalseの値を保持していますが、trueの場合はテンプレートにボタンが表示されます:
<gol-navbar page-title="{{matchWeek}}"
show-lock-icon="{{canPredictionsBePosted}}"">
</gol-navbar>
このコードを実行すると、実際にshowLockIconテンプレート変数に渡された値が正しいことがわかりますが、ng-showを持つディレクティブテンプレートの要素は機能しません。つまり、falseの値を渡すと、ボタンはまだ表示されます。
アイデア?
さらに、私のホームコントローラのcanPredictionsBePosted変数の値を変更すると、テンプレート内のshowLockIconの値が更新されません。どのように私はこれを動作させることができますか?
私はディレクティブが新しく、すべての助けに感謝します。
に
canPredictionsBePosted
周りの中括弧を削除し、私もshowLockIconを使用して試してみた:1)以下のように
showLockIcon
ため=
を使用する "=" が、その後、 {{showLockIcon}}行の変数の値を見るのではなく、式(中括弧が含まれています)のテキストだけが表示されるため、テンプレートが破損しているようです。 – hugonne'='を使うのは正しいアプローチです。しかし、その間に{{showLockIcon}} ' – CodeWarrior