Автор оригинала: Aaron Saunders.
Обзор
Это приложение пример предоставляется в качестве стартера, чтобы получить ваш Ионные рамки и Применение анализа и бегущий легко. Большая часть суеты в этих приложениях выясняет создание входа в систему и учетную запись … Этот шаблон решает, что для вас с рисунком, который затем может быть использован для полноценного приложения; Это не учебник для броска.
Мы разделили шаблоны, контроллеры и услуги в формате, который будет устойчивым для вашего окончательного решения.
Настройка конфигурации анализа в приложении стартера
Смотрите сайт Parse.com для Начало работы Отказ
Критическая информация, необходимая после настройки вашего приложения, является axcientiD
и JavaScriptley
которые необходимы для раздела конфигурации ионного приложения
Экран конфигурации анализа для приложения
Используя значения из консоли Parse, установите свойства в разделе App.js файл, показанный ниже
.value('ParseConfiguration', { applicationId: "SET-THIS-USING-PARSE-APPLICATION-ID", javascriptKey: "SET-THIS-USING-PARSE-JAVASCRIPT-KEY" }) }
Структура проекта приложения стартера
Приложение Starter – это приложение на основе двух вкладок с экраном входа в систему и экран создания учетной записи. Приложение создаст пользователей разбора для вас после того, как он настроен правильно.
Первая вкладка устанавливается в виде представления списка, когда используемые щелчки на элементе в списке отображается экран детализации. Маршруты UI-маршрутизатора уже настраиваются для этого поведения приложения.
Посмотреть список
Подробнее обзору
Вторая вкладка в этой настройке в виде «экрана настроек», которая пройдет в объекте пользователя из анализа, когда пользователь выбирает вкладку.
Настройки приложения Просмотр
Структура файла такова, что вся пользовательская функциональность является www/js/user/controllers.js
для контроллеров и www/js/user/services.js
Для услуг и фабрик. Ассоциированные взгляды в www/шаблоны/пользователь/login.html
и www/шаблоны/пользователь/fightup.html
Отказ
UI-роутер и разрешение
Простой способ, которым мы гарантируем, что пользователь вошел в приложение, является использованием абстрактного состояния вкладка
Это состояние использует решить
Функциональность от UI-роутер
Чтобы определить, доступен ли пользовательский объект Parse по вызове Userservice.init ()
Отказ Если обещание будет разрешено успешно, у нас есть пользовательский объект, и приложение может двигаться вперед.
Нажмите здесь для получения дополнительной информации о UI-маршрутизаторе, разрешении и абстрактных состояниях
// setup an abstract state for the tabs directive, check for a user // object here is the resolve, if there is no user then redirect the // user back to login state on the changeStateError .state('tab', { url: "/tab", abstract: true, templateUrl: "templates/tabs.html", resolve: { user: function (UserService) { var value = UserService.init(); return value; } } })
Если Userservice.init ()
Функция не может быть успешно разрешена, она возвращает ошибку Nouser
Отказ Всякий раз, когда UI-роутер
Не соответствует правильному маршруту, сгенерирована ошибка Nouser
Отказ
Мы слушаем $ StateChangeError
И если это на самом деле Nouser
Ошибка, затем мы отправляемся на экран входа в систему, используя app-login
Состояние UI-роутер
Отказ
Так как вкладка
Государство это Аннотация
Все государства дочерних государств также должны были успешно разрешить родительское состояние, это гарантирует, что пользователь вошел в систему, прежде чем выполнять любое состояние приложения
$rootScope.$on('$stateChangeError', function (event, toState, toParams, fromState, fromParams, error) { var errorMsg = error && (error.debug || error.message || error); console.log('$stateChangeError ' + errorMsg); // if the error is "noUser" the go to login state if (error && error.error === "noUser") { $state.go('app-login', {}); } });
Разборная служба в Ionic Framework
Мне было важно не включить функциональность разбора непосредственности непосредственно в контроллере, подобное так много других учебных пособий, с тех пор, как не является наилучшей практикой. Но как только вы попадете в службу, вы увидите, что сервис просто обертка вокруг конкретных Parse JavaScript API звонки.
/** * www/js/user/services.js * * Create a user in Parse, returns Promise * * @param _userParams * @returns {Promise} */ createUser: function (_userParams) { var user = new Parse.User(); user.set("username", _userParams.email); user.set("password", _userParams.password); user.set("email", _userParams.email); user.set("first_name", _userParams.first_name); user.set("last_name", _userParams.last_name); // should return a promise return user.signUp(null, {}); },
Регистрация пользователя еще более прямая
/** * www/js/user/services.js * * @param _user * @param _password * @returns {Promise} */ login: function (_user, _password) { return Parse.User.logIn(_user, _password); },