2016-05-12 73 views
1

我有更多的麻煩比我應該與一個簡單的變量條件檢查,但我是新來Angular,並希望有人能幫助我。我試圖在我的控制器中設置一個布爾值,然後在我的View中檢查它。聽起來很容易,我可能做一些小錯(希望)。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',併爲其賦值新的值。 –

回答

0

我只是騙和使用的,如果不是塊和它的工作對我來說

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

我想這一定是用的東西不被看到的DIV中的價值,只是一個猜測。謝謝大家幫助我。

+0

你現在正在使用剃刀。無需轉換爲字符串。你的解決方案更好,因爲沒有不必要的html被渲染。 –