Область видимости при роутинге
Как передавать изменение "переменной" при роутинге в другую область странички?
Вот есть такой код: angular .module('lessonApp', ['ui.bootstrap', 'ngRoute']); angular .module('lessonApp') .config(['$routeProvider','$locationProvider', function($routeProvider,$locationProvider){ $routeProvider .when('/page:page',{ templateUrl:function(params) {return '/site/lesson/pageAjaxUpdate?page='+ params.page+'&lectureId='+idLecture;}, controller: function($scope, $http){ $http({method: 'GET', url: ''}) .success(function(data) { //некий код $scope.data = data; }) } } }) }]); angular .module('lessonApp') .controller('lessonPageCtrl',lessonPageCtrl) function lessonPageCtrl($scope) { } В представлении: <div name="lecturePage"> <div ng-cloak class="tabsWidget"> <ng-view> </ng-view> </div> </div> Шаблон имеет вид: <div ng-model="spots" ng-init='edit=<?php echo $edit; ?>; spots=<?php echo json_encode($passedPages); ?>; thisPage=<?php echo $thisPage-1; ?>; editMode="<?php echo $editMode; ?>"; isAdmin="<?php echo AccessHelper::isAdmin(); ?>"; finishedLecture="<?php echo $finishedLecture; ?>"; lastAccessPage=<?php echo $lastAccessPage; ?>;' > </div> {{spots}} При роутинге модель spots будет изменятся. Как мне ее выводить в другой части страницы. Если прописать за пределами <ng-view> </ng-view> ничего не отображается |
Воспользовался идеей описаной на русскоязычном сайте ангуляра в коментариях
Роман и Наталья Ковальские Alexandr Ivanuna • 2 года назад Я решил вопрос следующим образом: 1. Изменил ng-bind-template="Google Phone Gallery {{query}}" на ng-bind-template="Google Phone Gallery {{newTitle}}" newTitle - это просто поле корневого $rootScope 2. В шаблоне phone-list.html там где строка поиска Search: <input ng-model="query"> я добавил директиву ng-change="reTitle()", которая вызывает функцию reTitle() при каждом изменении поля Получилось: Search: <input ng-model="query" ng-change="reTitle()"> 3. В контроллере phonecatControllers.controller('PhoneListCtrl', ... добавил функцию $scope.reTitle = function(){ $rootScope.newTitle = $scope.query; }; |
Что если хранить ее в $rootScope?
|
Часовой пояс GMT +3, время: 13:31. |