私はnavbar(ui-viewを持っている)を備えたメインコントローラを持っています。また、私はログインを処理するコントローラを持っています。ログイン後、ユーザーの情報を取得して$ scope/$ rootScopeに入れます。コントローラからNavbarにデータを入力するにはどうすればいいですか?
「Welcome、[nickname]!」のようなものを置くためにnavbarにこれらの変数はありません。
私はnavbar(ui-viewを持っている)を備えたメインコントローラを持っています。また、私はログインを処理するコントローラを持っています。ログイン後、ユーザーの情報を取得して$ scope/$ rootScopeに入れます。コントローラからNavbarにデータを入力するにはどうすればいいですか?
「Welcome、[nickname]!」のようなものを置くためにnavbarにこれらの変数はありません。
ナビゲーションバーデータを含むサービスを追加します。両方のコントローラにサービスを注入します。 navbarコントローラで、サービスのデータをnavbarビューにバインドします。ログイン後、サービスを呼び出してデータを追加します。
あなたはおそらくプログラムの他の部分にユーザーのデータが必要なので、サービスに「userProfile」という名前を付けると意味があります。
angular.module('app').factory('userProfile', function() {
return {};
});
angular.module('app').controller('NavBarCtrl', function(userProfile) {
var ctrl = this;
ctrl.userProfile = userProfile;
});
<!-- NavBar.html -->
<span class="welcome">Welcome, {{$ctrl.userProfile.nickname}}</span>
angular.module('app').controller('LoginCtrl', function(userProfile) {
//Do Login stuff
.then(function(profileData) {
userProfile.nickname = profileData.nickname;
});
});
「ニックネーム」を表示しようとするコードを入力してください。 – Zooly