在Angularjs模板中,可以在ng-show中使用ViewBag.Property吗?
我在我的控制器/动作中设置了一些视图包
ViewBag.AllowExport = false;
当我尝试不做任何事情时
<div ng-show="@ViewBag.AllowExport">
<a href="JavaScript:void(0);">Export</a>
</div>
即使AllowExport = false,
我的语法是错误的还是我们不能在ng-show中使用Viewbag?
任何建议
答案 0 :(得分:3)
试试这个:
<div ng-show="'@(ViewBag.AllowExport)'">
<a href="JavaScript:void(0);">Export</a>
</div>
答案 1 :(得分:0)
你在这里混合了fron-tend(Angular / JavaScript)和后端(Razor)代码。我强烈反对这一点。但是,如果你真的想这样做:HTML中的结果将只是Angular的字符串。
这应该有效,因为Angular将验证{{}}
中的表达式:
<div ng-show="{{@ViewBag.AllowExport}}">
<a href="">Export</a>
</div>
我建议您不要在Angular HTML代码中混合使用Razor语法,而是建议使用从某个JSON源设置的范围变量,或者如果您真的想要混合使用MVC数据,请在某些Javascript配置中设置值:
<script>
window.ClientConfig = {
allowExport: @ViewBag.AllowExport,
};
</script>
然后在Angular控制器中使用$scope.allowExport = window.ClientConfig.allowExport;
在HTML中:
<div ng-show="allowExport">
<a href="">Export</a>
</div>