2016-10-03 44 views
2

我有一個MVC項目與AngularJS。在我的控制器中,如果用戶是管理員,我希望$scope.userRole顯示字符串Admin。我試着ng-bind來解決這一點,但它$scope.data.adminif-statementNg綁定顯示控制器中未定義

@if (User.IsInRole("Admin") 
{ 
    <div ng-Controller="ctrl" ng-bind="data.admin" > 
     @Html.Partial("AdminPartial") 
    </div 
} 

而且我AngularJS返回undefined

$scope.userRole = ""; 
$scope.data = {}; 
if ($scope.data.admin != null && $scope.data.admin != "") { 
    $scope.userRole = "Admin"; 
} else { 
    $scope.userRole = "User"; 
} 

$scope.data.admin是不確定的,我不知道爲什麼。我應該補充一點,我對AngularJS相當陌生

+0

'NG-model'不會對DIV工作,你應該有元素的輸入類型指定'NG-model' – Rakeschand

+0

你也錯過了「=」在t之間他的模型和價值。 –

+0

@Rakeschand是否有另一種解決問題的方法? – Benji

回答

0

您不能將ng-model綁定到div。使用ng-bind代替

<div ng-Controller="ctrl" ng-bind="data.admin" ></div> 
0

ngModel基本上可以綁定inputselecttextarea看到ngModel

0

你是在一個div這是不可能使用ng-model。如果你想要一個雙向綁定,你應該使用inputtextareacheckbox或...用戶可以交互的東西。

在你的情況,似乎你正在尋找一個單向綁定(只顯示變量的值),那麼你應該使用{{variable}}ng-bind

@if (User.IsInRole("Admin") 
{ 
    <div ng-Controller="ctrl" ng-bind="data.admin" > 
     @Html.Partial("AdminPartial") 
    </div 
} 

或者你想顯示div在用戶爲admin ..那麼你應該使用ng-if

@if (User.IsInRole("Admin") 
{ 
    <div ng-Controller="ctrl" ng-if="data.admin" > 
     @Html.Partial("AdminPartial") 
    </div 
} 
+0

這仍然返回角度控制器中'$ scope.data.admin'的'undefined' – Benji

+0

您是否初始化'$ scope.data.admin'? – Weedoze

+0

你應該有這個地方:'$ scope.data.admin = false;'並且它必須設置爲正確的值 – Weedoze