Я впервые тестирую Ionic/AngularJS и создаю простой логин с токеном, отправленным с мобильного.Ionic/AngularJS и простой экран входа в систему
У меня есть поле ввода для номера телефона и поля ввода для токена/кода.
Сначала отображается только поле ввода номера телефона, но когда пользователь запрашивает код, поле ввода кода должно стать видимым. Как только пользователь ввел четырехзначный код, кнопка должна перейти от «Получить код» в «Вход» и вызвать функцию с двумя параметрами.
Это мой код до сих пор: http://codepen.io/anon/pen/PZOOBz
Я вроде застрял с изменением текста кнопки и поведение после того, как пользователь вошел в номер телефона.
HTML:
<html ng-app="Hello">
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
<title></title>
<link href="http://code.ionicframework.com/1.2.4/css/ionic.min.css" rel="stylesheet">
<script src="http://code.ionicframework.com/1.2.4/js/ionic.bundle.min.js"></script>
</head>
<body>
<ion-nav-view></ion-nav-view>
<script id="templates/signin.html" type="text/ng-template">
<ion-content>
<form name="signInForm" novalidate>
<div class="list list-inset">
<label class="item item-input">
<i class="icon ion-ios-telephone placeholder-icon"></i>
<input type="tel" ng-model="phoneNumber" ng-minlength="4" placeholder="Your Phone Number" required>
</label>
<label class="item item-input" ng-if="signInForm.$valid">
<i class="icon ion-ios-locked placeholder-icon"></i>
<input type="text" ng-model="code" ng-minlength="4" ng-maxlength="4" placeholder="Your Code">
</label>
</div>
<div class="padding">
<button class="button button-block button-positive" ng-disabled="signInForm.$invalid" ng-click="signIn(phoneNumber)">Get Code</button>
</div>
</form>
</ion-content>
</script>
<script id="templates/home.html" type="text/ng-template">
<ion-content>
</ion-content>
</script>
</body>
</html>
JS:
angular.module('Hello', ['ionic'])
.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('signin', {
url: '/signin',
templateUrl: 'templates/signin.html',
controller: 'SignInCtrl'
})
.state('home', {
url: '/home',
templateUrl: 'templates/home.html'
});
$urlRouterProvider.otherwise('/signin');
})
.controller('SignInCtrl', function($scope, $state) {
$scope.signIn = function(phoneNumber, code) {
console.log('Sign In Phone Number', phoneNumber);
console.log('Sign In Code', code);
$state.go('home');
};
$scope.signIn = function(phoneNumber) {
console.log('Sign In Phone Number', phoneNumber);
};
});
Это работает для изменения текста, да.Я признаю, что мой вопрос был не столь ясен, поэтому мне все еще нужно менять «ng-hide» динамически и «требуется» на элементах. Это так же легко? –