我正在尝试将应用程序中已登录的用户名传递给角度控制器。我已经使用像这样的模型绑定传递其他参数并且完美地工作
<input class="form-control" type="text" id="argOne" name="argOne" ng-model="viewModel.test.argumentOne" />
我尝试使用隐藏输入传递用户名,但我在控制器上得到一个未定义的值
<input class="form-control" type="hidden" id="argTwo" name="argTwo" ng-model="viewModel.test.argumentTwo" value=@UserManager.GetUserName(User) />
我在这里看过类似的例子,但直接从ASP.NET核心的UserManager类中获取值时没有具体的说明
更新:我不是在询问如何显示Signed in用户,问题是如何使用模型绑定将该值传递给角度控制器,如问题的第一行代码所示,但隐藏字段或类似用户看不到的东西
答案 0 :(得分:2)
根据您的想法,我建议您使用范围变量来保留用户名,而不是将其保存在隐藏字段中。你要保留的是一个用户名,我假设你可能需要在你的angularjs app中的各种控制器中使用它。因此,我宁愿将其保留在应用程序范围内以利用范围继承。
所以我的建议看起来像这样:
在HTML中,您将用户名分配给相关的范围变量$rootScope.username
:
<html ng-app="myApp" ng-init="$rootScope.username='@UserManager.GetUserName(User)'">
....
<div ng-controller="myController">
Your Username is : {{$rootScope.username}}
</div>
我可以在任何地方使用JS:
var app = angular.module('myApp',[]);
app.controller('myController',function(){
// you can use $scope.username in this code and it would be inherited from the $rootScope.username
...
});
答案 1 :(得分:0)
您应该将代码更改为
var user = UserManager.GetUserName(User)
if(user)
{
$scope.userName = user;
}
<input class="form-control" type="hidden" id="argTwo" name="argTwo" ng-model="userName" />