Рубрики
Без рубрики

Шаблон стартера – приложение Ionic Framework с интеграцией анализа

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

Автор оригинала: 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-маршрутизатора уже настраиваются для этого поведения приложения.

Посмотреть список

https://s3.amazonaws.com/f.cl.ly/items/2O3N3c1W1O3m1O3n2Z0R/Image%202015-03-22%20at%2010.26.29%20PM.png

Подробнее обзору

https://s3.amazonaws.com/f.cl.ly/items/0l3E2j2q3w1G0v2y3E2y/Image%202015-03-22%20at%2010.26.37%20PM.png

Вторая вкладка в этой настройке в виде «экрана настроек», которая пройдет в объекте пользователя из анализа, когда пользователь выбирает вкладку.

Настройки приложения Просмотр

https://s3.amazonaws.com/f.cl.ly/items/3D081H1416050g0d352e/Image%202015-03-22%20at%2010.30.08%20PM.png

Структура файла такова, что вся пользовательская функциональность является 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);
},

Ссылки