2016-05-12 4 views
1

私は単純な可変条件チェックでは困っていますが、私はAngularを初めて使っていて、誰かが私を助けてくれることを期待していました。私は私のコントローラでブールを設定しようとしているし、私のビューでそれを確認しています。簡単に聞こえるし、私はおそらく何か小さな間違ったことをやっている(うまくいけば)。私はビュー内の変数にアクセスしようと、それもブール値を考慮し、関係なく、私のグリッドを示していないかのように、現在、それが作用ngifがViewDataと連携していません

 var admin = false; 
     //do something that makes it true 
     ViewData["Admin"] = admin; 
ここ

です:

はここで変数を設定するコントローラです。

@{ 
    bool admin = (bool)ViewData["Admin"]; 
} 
<div ngIf="admin"> 
     <div class="row"> 
      <div class="grid" ui-grid="gridOptions" 
       ui-grid-pagination 
       ui-grid-selection 
       ui-grid-edit 
       ui-grid-row-edit 
       ui-grid-validate 
       ui-grid-exporter 
       ui-grid-cellNav 
       style="height: 500px;"> 
      </div> 
     </div> 
     <div class="form-group"> 
      <div class="container-fluid"> 
       <div class="row"> 
        <button type="button" onclick="@(" window.location.href='" + @Url.Action("Home", "Widgets", null) + "' ");" class="btn btn-primary col-sm-2"> 
         Save 
        </button> 
        <button type="button" ng-click="save()" class="btn btn-primary col-sm-2">Cancel 
        </button> 
       </div> 
      </div> 
     </div> 
    </div> 

これは条件に関係なく表示され、値がTrueであることを確認する出力を画面に書きました。私はそれを動作させることができると期待していますが、私はそれを動作させる方法を見つけることができません期待していくつかの異なる構文を試してみました。私の頭は机の上でそれを叩いて痛いです。おかげ

+3

「ngIf」を「ng-if」に変更する –

+1

「ng-if」だと思います。 – Kamo

+0

また、管理者はスコープ内の紛らわしいものを指します。つまり、 '$ scope.admin = false'のようにadminを宣言し、新しい値をそのように割り当てる必要があります。 –

答えて

0

私は騙されて、代わりにあればブロックを使用し、それが私はそれがdivの内側に見られていない値で、単なる推測で何かでなければならないと思う私

@{ 
    var admin = @ViewData["Admin"].ToString(); 
} 
@if (admin == "True") { //Show Grid } 

のために働きました。どうもありがとうございました。

+0

あなたは今では剃刀を使用しています。文字列にキャストする必要はありません。不必要なhtmlがレンダリングされることはないので、あなたのソリューションはさらに優れています。 –

関連する問題