AngularJS_AngularJS를 사용하여 양식 마법사를 구현하는 방법
오늘은 AngularJ와 훌륭한 UI 라우터 및 Angular ngAnimate 모듈을 사용하여 애니메이션이 포함된 다단계 양식을 만들어 보겠습니다. 이 기술은 사용자 작업을 단순화하려는 대규모 양식에 사용할 수 있습니다.
우리는 이 기술이 많은 웹페이지에 적용되는 것을 보았습니다. 장바구니, 등록 양식, 온보딩 흐름, 다양한 다단계 양식 등을 통해 사용자는 온라인에서 양식을 더 쉽게 작성할 수 있습니다.
여기서 구축하겠습니다.
상태를 포함하고 각 상태에 대해 서로 다른 보기를 표시할 수 있는 UI Router를 사용하면 다단계 양식을 매우 쉽게 만들 수 있습니다.
본격적으로 시작해 최고의 형태를 만들어 봅시다!
프로젝트 만들기
프로젝트를 생성하려면 레이아웃 파일, 각 폼별 뷰 파일, 포맷 파일, 자바스크립트 파일이 필요합니다.
다음은 파일 목록입니다. 먼저 생성한 후 내용을 채워주세요
- - index.html
- - form.html
- - form-profile.html
- - form-interests.html
- - form-결제.html
- -app.js
- - style.css
각 양식-____.html은 계층 구조의 HTML 파일을 나타냅니다. 이러한 구조는 궁극적으로 양식 구조를 만듭니다.
레이아웃/템플릿 파일 index.html
필요한 모든 리소스를 소개하는 메인 파일을 생성하여 프로젝트를 시작합니다. 여기서는 index.html 파일을 메인 파일로 사용합니다.
이제 필요한 리소스(AngularJS, ngAnimate, Ui Router 및 기타 스크립트와 스타일시트)를 로드하고 ui-view를 설정하여 뷰가 표시되어야 하는 위치를 UI Router에 알려줍니다. 여기서는 Bootstrap을 사용하여 스타일을 빠르게 적용합니다.
<!-- index.html --> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <!-- CSS --> <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootswatch/3.1.1/darkly/bootstrap.min.css"> <link rel="stylesheet" href="style.css"> <!-- JS --> <!-- load angular, nganimate, and ui-router --> <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.min.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.10/angular-ui-router.min.js"></script> <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular-animate.min.js"></script> <script src="app.js"></script> </head> <!-- apply our angular app --> <body ng-app="formApp"> <div class="container"> <!-- views will be injected here --> <div ui-view></div> </div> </body> </html>
모든 파일 소개를 마친 후 app.js를 입력하여 Angular 애플리케이션 생성과 가장 기본적인 라우팅 구성을 시작하겠습니다. Angular 앱(formApp)을 본문에 어떻게 적용했는지 확인하세요.
Angular 앱 app.js 만들기
이제 애플리케이션과 경로를 만들어 보겠습니다. 대규모 애플리케이션에서는 분명히 Angular 애플리케이션, 경로 및 컨트롤러를 자체 모듈에 배포하고 싶지만 간단한 사용 사례에서는 이들을 모두 app.js 중간이라는 행복한 제품군에 넣을 것입니다.
// app.js // create our angular app and inject ngAnimate and ui-router // ============================================================================= angular.module('formApp', ['ngAnimate', 'ui.router']) // configuring our routes // ============================================================================= .config(function($stateProvider, $urlRouterProvider) { $stateProvider // route to show our basic form (/form) .state('form', { url: '/form', templateUrl: 'form.html', controller: 'formController' }) // nested states // each of these sections will have their own view // url will be nested (/form/profile) .state('form.profile', { url: '/profile', templateUrl: 'form-profile.html' }) // url will be /form/interests .state('form.interests', { url: '/interests', templateUrl: 'form-interests.html' }) // url will be /form/payment .state('form.payment', { url: '/payment', templateUrl: 'form-payment.html' }); // catch all route // send users to the form page $urlRouterProvider.otherwise('/form/profile'); }) // our controller for the form // ============================================================================= .controller('formController', function($scope) { // we will store all of our form data in this object $scope.formData = {}; // function to process the form $scope.processForm = function() { alert('awesome!'); }; });
이제 ngAnimate와 ui.router가 삽입된 애플리케이션이 생겼습니다. 우리는 또한 해당 경로를 설정했습니다. 각 보기 영역에 대한 URL, 보기 파일(templateUrl) 및 컨트롤러를 어떻게 정의하는지 확인하세요.
양식이 기본 보기 영역이 됩니다. 또한 로 구분된 하위 뷰 영역 form.profile이 있습니다. 이 아이디어는 애플리케이션 상태가 변경되면(번역기: 라우팅, queryString 등일 수 있음) 실현될 수 있으며, 하위 뷰는 기본 뷰 영역에 표시됩니다. (번역자: 그리고 하위 보기 영역 변경 사항만 업데이트하고 하위 보기 영역 상태를 기록할 수 있습니다).
다음 섹션에서 이에 대해 설명하겠습니다. 이제 양식과 해당 하위 뷰 영역에 대한 뷰를 만들어야 합니다.
양식 템플릿 보기 form.html
새 form.html을 만들어 시작해 보겠습니다. index.html이 전체 프로젝트의 전체 템플릿으로 사용되는 것처럼 이 파일은 나머지 양식 보기 파일의 템플릿 역할을 합니다. 우리가 해야 할 일은 중첩된 선언이 뷰를 삽입할 위치를 알 수 있도록 이 파일에 ui-view를 포함시키는 것뿐입니다.
<!-- form.html --> <div class="row"> <div class="col-sm-8 col-sm-offset-2"> <div id="form-container"> <div class="page-header text-center"> <h2>Let's Be Friends</h2> <!-- the links to our nested states using relative paths --> <!-- add the active class if the state matches our ui-sref --> <div id="status-buttons" class="text-center"> <a ui-sref-active="active" ui-sref=".profile"><span>1</span> Profile</a> <a ui-sref-active="active" ui-sref=".interests"><span>2</span> Interests</a> <a ui-sref-active="active" ui-sref=".payment"><span>3</span> Payment</a> </div> </div> <!-- use ng-submit to catch the form submission and use our Angular function --> <form id="signup-form" ng-submit="processForm()"> <!-- our nested state views will be injected here --> <div id="form-views" ui-view></div> </form> </div> <!-- show our formData as it is being typed --> <pre class="brush:php;toolbar:false"> {{ formData }}
注意我们是如何第二次在项目中使用ui-view的。这就是UI Router伟大的地方:我们可以嵌套声明和视图。这能够在我们开发应用时提供给我们非常多的灵活性。关于UI Router视图的内容,请参见官方文档。
添加基于状态的激活类
我们希望每一个状态按钮能够在他们被激活时展示。为了达到这个效果,我们将会使用UI Router提供的ui-sref-active。如果ui-sref和当前状态一致,则会添加我们指定的类。
现在,你可能想知道我们的表单究竟看起来是什么样子。让我们打开浏览器看一眼。
目前为止,我们并没有完全按照希望的那样得到所有的内容,但是这是一系列伟大事情的开端。让我们继续前进,添加一点样式,之后会添加一些嵌入视图和注释。
基础Stylingstyle.css
我们将设计我们的form-container和status-buttons来是我们的表单看起来更好。
/* style.css */ /* BASIC STYLINGS ============================================================================= */ body { padding-top:20px; } /* form styling */ #form-container { background:#2f2f2f; margin-bottom:20px; border-radius:5px; } #form-container .page-header { background:#151515; margin:0; padding:30px; border-top-left-radius:5px; border-top-right-radius:5px; } /* numbered buttons */ #status-buttons { } #status-buttons a { color:#FFF; display:inline-block; font-size:12px; margin-right:10px; text-align:center; text-transform:uppercase; } #status-buttons a:hover { text-decoration:none; } /* we will style the span as the circled number */ #status-buttons span { background:#080808; display:block; height:30px; margin:0 auto 10px; padding-top:5px; width:30px; border-radius:50%; } /* active buttons turn light green-blue*/ #status-buttons a.active span { background:#00BC8C; }
现在我们的按钮更好看了并且更符合我们想要的了,接下来我们看下嵌套视图。
嵌套视图form-profile.html, form-interests.html, form-payment.html
这部分会比较简单。我们将定义不同的带有我们需要的输入框的视图。并且将他们绑定到formData对象以便我们能看到输入的数据。
下面是我们用于嵌套视图的视图文件:
表单概要视图
<!-- form-profile.html --> <div class="form-group"> <label for="name">Name</label> <input type="text" class="form-control" name="name" ng-model="formData.name"> </div> <div class="form-group"> <label for="email">Email</label> <input type="text" class="form-control" name="email" ng-model="formData.email"> </div> <div class="form-group row"> <div class="col-xs-6 col-xs-offset-3"> <a ui-sref="form.interests" class="btn btn-block btn-info"> Next Section <span class="glyphicon glyphicon-circle-arrow-right"></span> </a> </div> </div>
表单兴趣视图
<!-- form-interests.html --> <label>What's Your Console of Choice?</label> <div class="form-group"> <div class="radio"> <label> <input type="radio" ng-model="formData.type" value="xbox" checked> I like XBOX </label> </div> <div class="radio"> <label> <input type="radio" ng-model="formData.type" value="ps"> I like PS4 </label> </div> </div> <div class="form-group row"> <div class="col-xs-6 col-xs-offset-3"> <a ui-sref="form.payment" class="btn btn-block btn-info"> Next Section <span class="glyphicon glyphicon-circle-arrow-right"></span> </a> </div> </div>
表单支付视图
<!-- form-payment.html --> <div class="text-center"> <span class="glyphicon glyphicon-heart"></span> <h3>Thanks For Your Money!</h3> <button type="submit" class="btn btn-danger">Submit</button> </div>
既然我们已经定义了这些视图,那么当我们浏览表单时,他们就会显示出来。同样我们用下一个按钮和ui-sref来连接每一个新视图.
当使用ui-sref时,你要连接到你路由中定义的state而不是URL。然后Angular会使用这个来为你构建href。
下面是我们表单目前的每一个页面。
为了让我们的页面不同寻常,让我们加上动画效果。
让我们的表单产生动画效果
因为在项目开始的时候,我们已经加载了ngAnimate,它已经添加到需要动画的的类上了。当视图进入或退出的时候,它将自动添加类ng-enter和ng-leave。
现在我们所有做的就是通过样式形成我们最终的表单。为了理解Angular动画,这篇文章是一个很好的起点。
让我们进去css文件,将动画,并应用到我们的表单上
/* style.css */ /* ANIMATION STYLINGS ============================================================================= */ #signup-form { position:relative; min-height:300px; overflow:hidden; padding:30px; } #form-views { width:auto; } /* basic styling for entering and leaving */ /* left and right added to ensure full width */ #form-views.ng-enter, #form-views.ng-leave { position:absolute; left:30px; right:30px; transition:0.5s all ease; -moz-transition:0.5s all ease; -webkit-transition:0.5s all ease; } /* enter animation */ #form-views.ng-enter { -webkit-animation:slideInRight 0.5s both ease; -moz-animation:slideInRight 0.5s both ease; animation:slideInRight 0.5s both ease; } /* leave animation */ #form-views.ng-leave { -webkit-animation:slideOutLeft 0.5s both ease; -moz-animation:slideOutLeft 0.5s both ease; animation:slideOutLeft 0.5s both ease; } /* ANIMATIONS ============================================================================= */ /* slide out to the left */ @keyframes slideOutLeft { to { transform: translateX(-200%); } } @-moz-keyframes slideOutLeft { to { -moz-transform: translateX(-200%); } } @-webkit-keyframes slideOutLeft { to { -webkit-transform: translateX(-200%); } } /* slide in from the right */ @keyframes slideInRight { from { transform:translateX(200%); } to { transform: translateX(0); } } @-moz-keyframes slideInRight { from { -moz-transform:translateX(200%); } to { -moz-transform: translateX(0); } } @-webkit-keyframes slideInRight { from { -webkit-transform:translateX(200%); } to { -webkit-transform: translateX(0); } }
首先,确定视图离开或进去时,表单的样式,他们是绝对定位的。需要确认当视图进入的时候一个视图不会放到另一个视图的下面。
其次,应用我们的动画到.ng-enter和.ng-leave类
第三,用@keyframes定义动画。所有这些部分组合到一起,我们的表单就有了Angular动画,基于状态的UI Router和Angular数据绑定。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP 양식 제출 후 페이지 점프를 구현하는 방법 [소개] 웹 개발에서 양식 제출은 일반적인 기능 요구 사항입니다. 사용자가 양식을 작성하고 제출 버튼을 클릭한 후 일반적으로 양식 데이터는 처리를 위해 서버로 전송되어야 하며, 처리 후 사용자는 다른 페이지로 리디렉션됩니다. 이 기사에서는 양식 제출 후 PHP를 사용하여 페이지 점프를 구현하는 방법을 소개합니다. [1단계: HTML 양식] 먼저 사용자가 제출해야 하는 데이터를 채울 수 있도록 HTML 페이지에 양식이 포함된 페이지를 작성해야 합니다.

JavaScript를 사용하여 양식 입력 상자 내용의 자동 프롬프트 기능을 구현하는 방법은 무엇입니까? 소개: 양식 입력 상자 내용의 자동 프롬프트 기능은 웹 애플리케이션에서 매우 일반적이며 사용자가 올바른 내용을 빠르게 입력하는 데 도움이 됩니다. 이 기사에서는 JavaScript를 사용하여 이 기능을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. HTML 구조 만들기 먼저 입력 상자와 자동 제안 목록이 포함된 HTML 구조를 만들어야 합니다. 다음 코드를 사용할 수 있습니다: <!DOCTYP

PHP 양식에서 사용자 권한 관리를 처리하는 방법 웹 애플리케이션이 지속적으로 개발되면서 사용자 권한 관리는 중요한 기능 중 하나입니다. 사용자 권한 관리는 애플리케이션에서 사용자의 운영 권한을 제어하고 데이터의 보안과 합법성을 보장할 수 있습니다. PHP 양식에서는 간단한 코드를 통해 사용자 권한 관리를 구현할 수 있습니다. 이 기사에서는 PHP 양식에서 사용자 권한 관리를 처리하는 방법을 소개하고 해당 코드 예제를 제공합니다. 1. 사용자 역할 정의 및 관리 우선 사용자 역할을 정의하고 관리하는 것은 사용자 권한의 문제입니다.

JavaScript를 사용하여 양식의 입력 상자 내용에 대한 실시간 확인을 구현하는 방법은 무엇입니까? 많은 웹 애플리케이션에서 양식은 사용자와 시스템 간의 가장 일반적인 상호 작용 방법입니다. 그러나 데이터의 정확성과 완전성을 보장하기 위해 사용자가 입력한 콘텐츠의 유효성을 검사해야 하는 경우가 많습니다. 이 기사에서는 JavaScript를 사용하여 양식 입력 상자 내용의 실시간 확인을 구현하고 구체적인 코드 예제를 제공하는 방법을 알아봅니다. 양식 만들기 먼저 HTML로 간단한 테이블을 만들어야 합니다.

HTML, CSS 및 jQuery를 사용하여 양식 자동 저장의 고급 기능을 구현하는 방법 양식은 최신 웹 애플리케이션에서 가장 일반적인 요소 중 하나입니다. 사용자가 양식 데이터를 입력할 때 자동 저장 기능을 구현하는 방법은 사용자 경험을 향상시킬 뿐만 아니라 데이터 보안도 보장할 수 있습니다. 이 글에서는 HTML, CSS, jQuery를 사용하여 양식의 자동 저장 기능을 구현하는 방법을 소개하고 구체적인 코드 예제를 첨부합니다. 1. HTML 양식의 구조 먼저 간단한 HTML 양식을 만들어 보겠습니다.

PHP 양식 처리: 양식 데이터 쿼리 및 필터링 소개 웹 개발에서 양식은 중요한 상호 작용 방법입니다. 사용자는 추가 처리를 위해 양식을 통해 서버에 데이터를 제출할 수 있습니다. 이 기사에서는 PHP를 사용하여 양식 데이터의 쿼리 및 필터 기능을 처리하는 방법을 소개합니다. 양식 디자인 및 제출 먼저 쿼리 및 필터 기능이 포함된 양식을 디자인해야 합니다. 일반적인 양식 요소에는 입력 상자, 드롭다운 목록, 라디오 버튼, 확인란 등이 포함되며 특정 요구 사항에 따라 디자인할 수 있습니다. 사용자가 양식을 제출하면 데이터가 POS로 전송됩니다.

자바스크립트는 코드의 구성, 코드의 프로그래밍 패러다임, 객체지향 이론 측면에서 매우 독특한 언어입니다. 하지만 20년 동안 Javascript가 지배했음에도 불구하고 jQuery, Angularjs, 심지어 React와 같은 인기 프레임워크를 이해하려면 "Black Horse Cloud Classroom JavaScript Advanced Framework"를 시청하세요. 디자인 비디오 튜토리얼'을 참조하세요.

양식은 웹 사이트나 응용 프로그램을 작성하는 데 있어 필수적인 부분입니다. 널리 사용되는 PHP 프레임워크인 Laravel은 풍부하고 강력한 양식 클래스를 제공하여 양식 처리를 보다 쉽고 효율적으로 만듭니다. 이 글에서는 개발 효율성을 향상시키는 데 도움이 되는 Laravel 폼 클래스 사용에 대한 몇 가지 팁을 소개합니다. 다음은 구체적인 코드 예시를 통해 자세히 설명합니다. 양식 생성하기 Laravel에서 양식을 생성하려면 먼저 뷰에 해당 HTML 양식을 작성해야 합니다. 양식 작업 시 Laravel을 사용할 수 있습니다.
