2016-10-03 7 views
2

私はAngularJSでMVCプロジェクトを持っています。私のコントローラでは、$scope.userRoleに、ユーザが管理者の場合はAdminという文字列を表示したいと考えています。私はng-bindでこれを解決しようとしたが、それは私のif-statementコントローラで定義されていないNg-bind

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

そして、私のAngularJSで$scope.data.adminため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-modeldivにバインドすることはできません。基本的にselectinputと結合し、textareaあなたは可能ではないのdivにng-modelを使用しているngModel

0

ngModelを使用してください。双方向バインディングを使用する場合は、inputまたはtextareaまたはcheckboxなどのユーザーが対話できる場所を使用する必要があります。あなたのケースでは

、あなたが{{variable}}またはng-bind

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

を使用する必要があります(のみ変数の値を表示)あなたは、一方向結合を探しているようだか、divを表示したいですユーザーが管理者である..ですあなたはng-if

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

を見ることができますng-bind代わり

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

これはAngularコントローラの '$ scope.data.admin'にまだ未定義を返します – Benji

+0

' $ scope.data.admin'を初期化していますか? – Weedoze

+0

これはどこかにある必要があります: '$ scope.data.admin = false;'そしてそれは正しい値に設定する必要があります – Weedoze

関連する問題