Angularjs - 使用 ng-show 处理两个不同的链接时页面变为空白

Angularjs - Page goes Blank when working with ng-show for two different links

Link1 : 个人资料

链接 2:更新

查看:common.html

这两个link是home.html的一部分

因此,在我的应用程序中,配置文件和更新都将重定向到 common.html。在 ng-show 的帮助下,我在单击 link 时显示了某些部分。

这是我的代码示例。在实际场景中,视图存储在 view/common.html

中的不同路径上

var app = angular.module("myApp", []);
app.controller("myCtrl", function($scope) {
    $scope.get = function(d) {
        if (d == 1) {
            $scope.pro = true;
            $scope.set = false;
        } else if (d == 2) {
            $scope.set = true;
            $scope.pro = false;

        }
    }

});
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>

<body ng-app="myApp" ng-controller="myCtrl">

    <div ng-click="get(1)">Profile</div>
    <div ng-click="get(2)">Setting</div>

    <div ng-show="pro"> This is my profile </div>
    <div ng-show="set"> This is my settting </div>



</body>

</html>

问题: 当我刷新页面时,页面变为空白。

我想要的是,如果我点击 link 中的任何一个然后刷新,那么它应该显示我所在的相应页面 present.I 尝试通过本地存储实现这一点,方法是在本地存储中设置唯一 ID link.

但我不知道如何实现 this.Help 我要做到这一点。

在您的 get 函数中,在本地存储中注册 set 和 pro 的值。

在您的控制器中使用会话存储初始化您的变量(如果已定义)。就这些了。

也许你应该使用 $locationChangeStart 播出前一个URL会变。

因此,在 url 更改之前,将当前选项卡保存在会话存储中。 Google啦!

您的控制器仅包含一个 get 功能,没有其他功能,因此当控制器为 运行 时,proset 的值均为 undefined.

因为在 JavaScript 中 undefined 有一个假值,ng-show 隐藏了两个页面。您必须通过在控制器中将该值设置为 true 来设置要显示的默认页面:

(function() {
    angular.module("myApp", [])
        .controller("myCtrl", function($scope) {

            // set default values
            $scope.pro = true;
            $scope.set = false;

            $scope.get = function(d) {
                if (d == 1) {
                    $scope.pro = true;
                    $scope.set = false;
                } else if (d == 2) {
                    $scope.set = true;
                    $scope.pro = false;

                }
            };

        });
})();