私のangularjsアプリでは、すべてのページに「ナビゲーションバー」divをレンダリングしています。
ユーザーがログインして詳細ページにリダイレクトした後、ビューに反映されていない $scope を更新したいと考えています。
$scope の変更を反映するために、$scope.$apply() を使用して $digest を呼び出しています。更新されていないようで、 $scope の更新がまだ私のビューに反映されていません。
私のコードは以下のようになります:
CONTROLLER:
function NavCtrl($scope){
//as isAuth false
$scope.showLogin = true;
$scope.showLogout = false;
}
function ProductDetails($scope){
//as isAuth true
$scope.showLogin = false;
$scope.showLogout = true;
if (!$scope.$$phase) {
//$digest or $apply to reflect update of scope update
$scope.$apply();
}
}
VIEW:
<div id="navigation-bar" ng-controller="NavCtrl">
<li ng-show="showLogin"><a href="/login">Login</a></li>
<li ng-show="showLogout"><a href="/logout">Logout</a></li>
</div>
私が間違っていることは何ですか?ポイントがありませんか?ちなみに、ビューに反映されていない AngularJS $scope updatesのような他の質問をしましたが、私の場合は役に立ちません。