2016-03-18 14 views
0

Я искал решение в двух следующих ссылок:

how-to-access-rootscope-value-defined-in-one-module-into-another-module

rootscope-variable-exists-but-not-accessible

Но до сих пор не удалось найти решение.

инициализирует $rootScope.user переменные в $scope.login функции, которая запускается с помощью какого-либо другого события нажатия кнопки, моего контроллера, как:

app.controller('LoginFormController',['$rootScope','$location','$log','$scope','userAngService','userBean',function($rootScope,$location,$log,$scope,userAngService,userBean){ 
    $scope.login = function(val){ 
     $scope.user = userAngService.login(val).then(function(data){ 
      $rootScope.user = data; 
      $location.path("/home"); 
     }); 
    }; 
}]); 

Перенаправления его /home отображенного в app.js как:

angular.module('Writer', ['AllControllers','ngRoute']) 
.config(['$routeProvider', function($routeProvider,$Log){ 
    $routeProvider.when('/Diary',{ 
     templateUrl:'login.html', 
     controller: 'LoginFormController' 
    }) 
    .when('/home',{ 
     templateUrl: 'home.html', 
     controller: 'ReachController' 
    }) 
    .otherwise({redirectTo : '/Diary'}); 
}]); 

Теперь я обращаюсь к $rootScope.user переменным в отображаемом контроллере ReachController как:

app.controller('ReachController',['$scope','$rootScope',function($scope,$rootScope){ 
    $scope.user = {}; 
    $scope.user = $rootScope.user; 
    console.log($scope.user); 
}]); 

Это идеальный регистрационный угловой объект в консоли, но не доступен на моей странице home.html. Вот HTML страницы - доступ к нему в <h2> и <h3> теги:

<div> 
 
     <h2>{{$scope.user}}hhhello</h2> 
 
     <h3>{{$scope.user.author}}</h3> 
 
     <div id="welcomeStory"> 
 
      <span id="wsTitleBub">Title</span> 
 
      <input id="wsTitle" type="text" ng-model="wsPublish.welcomeStoryTitle" />{{wsPublish.welcomeStoryTitle}} 
 
      <h6>Words..</h6> 
 
      <textarea id="wsWords" ng-model="wsPublish.welcomeStoryWords"></textarea> 
 
      <input id="wsPublish" type="button" name="wsPublish" value="Publish" ng-click="pub = !pub" /> 
 
      <input id="wsAddShelf" type="button" name="wsAddToShelf" value="Add To Shelf" ng-click="addToShelf()" /> 
 
     </div> 
 
     <div id="wsPublishTo" ng-show="pub"> 
 
      <ul> 
 
       <li> 
 
        <input type=submit id="wsgroups" value="Group" ng-click="publishGroup(wsPublish)" /> 
 
       </li> 
 
       <li> 
 
        <button id="wsPublic" ng-click="public()">Public</button> 
 
       </li> 
 
      </ul> 
 
     </div> 
 
    </div>

+1

Я не думаю, что вы хотите $ scope в ваших привязках в своей разметке. – user2079802

+2

Почему вы используете '$ scope' в представлении/разметке – Minato

+0

, не имеет значения? Я не уверен. Я делал это так же раньше и каждый раз работал –

ответ

0

Просто измените ваш $scope.user к user в разметке, и он будет работать.

0

Как только он находится в $ rootScope, вы можете напрямую получить к нему доступ в разметке с {{user}}, не нужно снова назначать его переменной области!

Смежные вопросы