2016-07-12 10 views
1

アプリケーションのサインインユーザ名を角度コントローラに渡そうとしています。私はすでに私はこのようにモデルバインディングを使用して、他のパラメータを渡すと、完全にモデルバインディングを使用してAngularJSコントローラにユーザ名を渡します。

<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" [email protected](User) /> 

ていますここでも同様の例がありますが、ASP.NETコアのUserManagerクラスから直接値を取得する場合は何もありません

更新:私はSigned inのユーザーを表示する方法は問いません。どうすればその値を渡すことができますか?角度コントローラuに質問のコードの1行目に示すように結合モデルを歌うが、隠しフィールドまたは類似した何かをユーザーが

+0

[AngularJsでログインしたMVCを表示する方法](http://stackoverflow.com/questions/26239071/how-to-show-mvc-logged-in-username-with-angularjs)の可能な複製 –

+0

@VictorHurdugaciその質問は、Webページにログインしているユーザーを表示するためのものです。その値を自分の角度コントローラに送る方法を尋ねています –

+0

なぜスコープ変数に保持しないのですか? AngularJSフレームワークを使用している場合、隠しフィールドに置くのは何ですか? – akazemis

答えて

2

にコードを変更する必要があります見ることができませんあなたがしたいことは、私はあなたが隠しフィールドに保持するよりも、ユーザー名を保持するためにスコープ変数を使用することをお勧めします。あなたが保持したいものは、私はあなたがあなたのanglejsアプリ全体の様々なコントローラでそれを使用する必要があるかもしれないと仮定しているユーザー名です。だから、私はスコープの継承を利用するために、アプリケーションスコープでそれを維持したいと思っています。

だから私はこのようになりますことを示唆しています何: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

それは美しく機能しました。私はuserNameの値を設定するためにng-initを使用しました。私は$ rootScopeの値を設定しませんでしたが、プロジェクトでさらに必要があると思うなら、あなたのお勧めを心に留めておきます。ご協力いただきありがとうございます! –

+0

私の喜び!がんばろう – akazemis

0

は、あなたがによると、この

var user = UserManager.GetUserName(User) 
if(user) 
{ 
$scope.userName = user; 
} 

<input class="form-control" type="hidden" id="argTwo" name="argTwo" ng-model="userName" /> 
関連する問題