Угловое двустороннее приветствие привязки данных

0

Извинения за то, что, вероятно, очень простой вопрос. Я делаю небольшой проект демо-викторины с угловатым. На первой странице у меня есть базовое двухстороннее приветствие привязки данных (т.е. Вы вводите свое имя в поле и приветствуете пользователя, например <p> Welcome {{name}} </p>

Как сохранить введенное имя и перенести этот прием на следующую страницу/шаблон? Вот код

<strong>Welcome</strong> {{email}}

  <p class="lead">Please enter your name </p>
      <body ng-app ng-init="email = 'John';">
      <label>enter name<input type="text" ng-model="firstName"/></label><br />
  </body>

И вот моя маршрутизация

'use strict';


angular
  .module('angularQuizApp', [
    'ngAnimate',
    'ngCookies',
    'ngResource',
    'ngRoute',
    'ngSanitize',
    'ngTouch'
  ])
  .config(function ($routeProvider) {
    $routeProvider
      .when('/', {
        templateUrl: 'views/main.html',
        controller: 'MainCtrl'
      })
      .when('/about', {
        templateUrl: 'views/about.html',
        controller: 'AboutCtrl'
      })
      [...]

Я начал с yoman угловой эшафот, так что изменили очень мало кода. Благодарим вас за добрые угловые волшебники

Теги:
angularjs-directive
javascript-databinding

1 ответ

2
Лучший ответ

Чтобы добиться того, чего вы хотите легко, вы можете создать службу, которая хранит имя пользователя:

angular.module('angularQuizApp').
 factory('StorageService',[
function(){

    var name = "";

    var _setName  = function(name){
        name = name;
    }:

    var _getName = function(){
        return name;
    };  

    return {
        setName : _setName,
        getName : _getName,
    }



}]);

Затем в контроллерах вызовите правильные методы из службы:

angular.module('angularQuizApp').
controller('MyController', ['$scope', 'StorageService',
   function($scope, StorageService) {
     $scope.name = StorageService.getName(); // or setName(name_value)
}]);

Таким образом, эта служба сохраняет имя пользователя через ваше угловое приложение. В рамках этой службы вы можете сохранить все, что захотите. Но этот объект/имя будет уничтожен, если вы покинете приложение.

Если вы хотите постоянно сохранять объекты, посмотрите на угловое хранилище: https://github.com/grevory/angular-local-storage

РЕДАКТИРОВАТЬ

Вот функциональное приложение, которое я сделал: http://plnkr.co/edit/7ZzBYnKmV1xflzi81YQc?p=preview

  • 0
    Отлично. Спасибо.
  • 2
    Вы также можете сохранить такие важные значения в $ rootScope.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню