2016-11-15 18 views
0

Я новичок в AngularJS. Здесь я хочу отобразить некоторый html при переключении с одного контроллера на другой. Это мой HomeController Угловая js показать/скрыть только работать в обновлении страницы

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»;) на главную страницу моего проекта

Я прилагаю некоторые экранные шорты, пожалуйста, взгляд.

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

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

Спасибо.

+1

Вы пытались добавить атрибут 'ng-cloak' в тело? '' – Filype

+0

Нет, я пробовал @Filype – sradha

+1

Попробуйте применить $ apply, это может быть проблема назначения перед инициализацией. –

ответ

1

Как вы используете синтаксис controller as. Итак, функцию контроллера мы объявляем как обычно, просто используя объект this вместо $scope.

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

Это больше настройки на основе класса, а также при создании экземпляра контроллера в DOM мы получаем экземпляр против variable:

// MainController не существует, мы получим `main` экземпляр только

для отражения this.myValue чек, основанный в DOM, нам нужно сделать, это:

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

Demo!

0

Мы можем использовать ngStorage для сохранения переменной области при перезагрузке страницы с помощью $localStorage в контроллере.

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

и в вашей новой версии функции $localStorage переменные так же, как $scope переменных (назначить) новые значения.

он работает со мной, чтобы сохранить элемент div, показанный с помощью ng-show (в зависимости от переменной $ scope) после перезагрузки страницы.

Пример:, чтобы сохранить чат-почтовый ящик, открытый после перезагрузки страницы, без повторного открытия.

Мы можем найти более подробную информацию о github page.