Angular js显示/隐藏仅在页面刷新

时间:2016-11-15 06:38:15

标签: javascript jquery html angularjs

我是AngularJS的新手。 在这里,我想在从一个控制器切换到另一个控制器时显示一些html。 这是我的HomeController

function HomeController($scope) {
 alert("hi");
 $scope.myValue = true;
}

这是我的MainController。 最初在我的MainController中它是假的。

function MainController($scope,$location) {
     $scope.myValue = false; 

}

这是我的身体。

<body ng-controller="MainController as main">
    <div id="sradha" ng-show="myValue" >Show-side-bar</div>
    <div ui-view></div>

    <!--<script src="js/angular.min.js"></script>-->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-sanitize.js"></script>
    <script src="../js/ui-router/angular-ui-router.min.js"></script>
    <script src="../js/all.js"></script>
</body>

我的问题是显示侧栏在我刷新时显示2到3秒,然后它隐藏。我已经在控制台中检查过。它隐藏在HTML.Here中当我从登录响应($ window.location.href ='http://localhost/Angular-js-admin/admin/#/home';)重定向到我项目的主页时,我想显示此 show-side-bar

我附上了一些屏幕短裤,请看看。

https://i.stack.imgur.com/BWnlz.png

https://i.stack.imgur.com/JKzsh.png

谢谢。

2 个答案:

答案 0 :(得分:1)

当您使用controller as语法时。所以,我们像往常一样声明控制器函数,只使用this对象而不是$scope

app.controller('MainController', function () {
    this.myValue = true;
});

这更像是基于类的设置,当在DOM中实例化Controller时,我们可以实例化variable

  // MainController不存在,我们只得到`main`实例

要反映基于this.myValue的{​​{1}}支票,我们需要这样做:

DOM

Demo!

答案 1 :(得分:0)

我们可以使用ngStorage通过在控制器中使用$localStorage来保持页面重新加载范围变量。

$scope.var1 = $localStorage.var1;
$scope.var2 = $localStorage.var2;
$scope.var3 = $localStorage.var3;

并在您的函数中更新$localStorage变量与$scope变量(分配)新值相同。

它可以帮我在页面重新加载后使用ng-show(取决于$ scope变量)显示div元素。

示例:在页面重新加载后打开聊天收件箱而不重新打开它。

我们可以在github page上找到更多信息。