2016-05-12 66 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被渲染。 –