Ng-bind在控制器中显示未定义

时间:2016-10-03 11:48:57

标签: javascript angularjs angular-ngmodel

我有一个AngularJS的MVC项目。在我的控制器中,如果用户是管理员,我希望$scope.userRole显示字符串Admin。我尝试使用ng-bind解决此问题,但在undefined

中为$scope.data.admin返回if-statement
@if (User.IsInRole("Admin")
{
    <div ng-Controller="ctrl" ng-bind="data.admin" >
        @Html.Partial("AdminPartial")
    </div
}

我的AngularJS:

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

$scope.data.admin未定义,我不知道为什么。我应该补充一点,我对AngularJS

相当新

3 个答案:

答案 0 :(得分:0)

您无法将term_list绑定到ng-model。请改用div

ng-bind

答案 1 :(得分:0)

ngModel基本上可以与inputselecttextarea绑定,请参阅ngModel

答案 2 :(得分: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用户是管理员..那么您应该使用ng-if

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