AngularJS 프로젝트를 시작하는 경우 모든 구성 요소를 각도로 작성할 수 있습니다. 기존 jQuery 플러그인을 재사용하는 것은 확실히 가능하지만, 지침 안에 많은 jQuery를 던지는 것이 항상 올바른 방법은 아닙니다. 저의 조언은 먼저 더 간단하고 더 나은 방식으로 순수한 각도로 동일한 것을 구현할 수 있는지 확인하는 것입니다. 이렇게하면 응용 프로그램 코드를 깨끗하고 유지 관리 할 수 있습니다. 초보자를 대상으로하는이 튜토리얼은 AngularJS가있는 간단한 유형의 위젯을 만들기 위해 독자들을 안내합니다.
개요
이 튜토리얼에서는 누군가가 텍스트 상자에 입력하기 시작하자마자 제안을 생성하는 간단한 유형의 헤드 위젯을 만들 것입니다. 최종 제품이 매우 구성 가능하고 기존 시스템에 쉽게 연결할 수 있도록 앱을 구조적으로 설계 할 것입니다. 창조 과정과 관련된 기본 단계는 다음과 같습니다.
<span>var typeAhead = angular.module('app', []);
</span>
typeAhead<span>.factory('dataFactory', function($http) {
</span> <span>return {
</span> <span>get: function(url) {
</span> <span>return $http.get(url).then(function(resp) {
</span> <span>return resp.data; // success callback returns this
</span> <span>});
</span> <span>}
</span> <span>};
</span><span>});</span>
이전 코드는 미국 상태의 JSON 목록을 반환하는 states.json이라는 API 엔드 포인트를 사용합니다. 데이터를 사용할 수 있으면 스코프 모델 항목에 목록을 저장합니다. 또한 모델 이름을 사용하여 선택한 항목을 유지합니다. 마지막으로, 사용자가 특정 상태를 선택하면 OnitemSelected () 함수가 실행됩니다.
2 단계 : 지침 생성
아래에 표시된 TypeAhead 지시문부터 시작하겠습니다.
typeAhead<span>.controller('TypeAheadController', function($scope<span>, dataFactory</span>) { // DI in action
</span> dataFactory<span>.get('states.json').then(function(data) {
</span> $scope<span>.items = data;
</span> <span>});
</span> $scope<span>.name = ''; // This will hold the selected item
</span> $scope<span>.onItemSelected = function() { // this gets executed when an item is selected
</span> <span>console.log('selected=' + $scope.name);
</span> <span>};
</span><span>});</span>
지침에서 우리는 여러 속성을 정의하는 격리 된 범위를 만들고 있습니다.
typeAhead<span>.directive('typeahead', function($timeout) {
</span> <span>return {
</span> <span>restrict: 'AEC',
</span> <span>scope: {
</span> <span>items: '=',
</span> <span>prompt: '@',
</span> <span>title: '@',
</span> <span>subtitle: '@',
</span> <span>model: '=',
</span> <span>onSelect: '&'
</span> <span>},
</span> <span>link: function(scope<span>, elem, attrs</span>) {
</span> <span>},
</span> <span>templateUrl: 'templates/templateurl.html'
</span> <span>};
</span><span>});</span>
<:> OnSelect : 메소드 바인딩, 선택이 끝나면 컨트롤러 범위에서 함수를 실행하는 데 사용됩니다.
참고 : 예제 JSON 응답은 다음과 같습니다.
<span>var typeAhead = angular.module('app', []);
</span>
typeAhead<span>.factory('dataFactory', function($http) {
</span> <span>return {
</span> <span>get: function(url) {
</span> <span>return $http.get(url).then(function(resp) {
</span> <span>return resp.data; // success callback returns this
</span> <span>});
</span> <span>}
</span> <span>};
</span><span>});</span>
3 단계 : 템플릿을 만듭니다
이제 지침에서 사용할 템플릿을 만들어 봅시다.
먼저 사용자가 입력 할 입력 텍스트 필드를 렌더링합니다. 스코프 속성 프롬프트는 자리 표시 자 속성에 할당됩니다. 다음으로, 우리는 상태 목록을 반복하고 이름 및 약어 속성을 표시합니다. 이 속성 이름은 제목 및 자막 범위 속성을 통해 구성됩니다. 지침 NG-M-MouseEnter 및 NG 클래스는 사용자가 마우스로 호버링 할 때 항목을 강조하는 데 사용됩니다. 다음으로, 우리는 필터 : 모델을 사용합니다.이 모델은 입력 필드에 입력 된 텍스트별로 목록을 필터링합니다. 마지막으로, 우리는 입력 텍스트 필드가 비어 있거나 사용자가 항목을 선택했을 때 NG-Hide 지시문을 사용하여 목록을 숨겼습니다. 선택한 속성은 핸들 사이드 () 함수 내부에서 true로 설정되었으며 누군가 입력 필드에 입력을 시작할 때 false false (제안 목록을 표시하기 위해)로 설정됩니다.
4 단계 : 링크 함수를 업데이트하십시오
다음으로 아래와 같이 지시문의 링크 기능을 업데이트하겠습니다.
함수 handleSelection ()은 선택한 상태 이름으로 범위 속성, 모델을 업데이트합니다. 그런 다음 현재 및 선택된 속성을 재설정합니다. 다음으로 onselect () 함수를 호출합니다. 할당 스코프 .model = selectedItem이 바운드 컨트롤러 스코프 속성을 즉시 업데이트하지 않기 때문에 지연이 추가됩니다. 모델이 선택한 항목으로 업데이트 된 후 컨트롤러 스코프 콜백 함수를 실행하는 것이 바람직합니다. 이것이 우리가 $ 타임 아웃 서비스를 사용한 이유입니다.
또한, 함수 iscurrent () 및 setCurrent ()는 템플릿에서 함께 사용하여 자동 완전 제안의 항목을 강조합니다. 다음 CSS는 하이라이트 프로세스를 완료하는 데 사용됩니다.
typeAhead<span>.controller('TypeAheadController', function($scope<span>, dataFactory</span>) { // DI in action
</span> dataFactory<span>.get('states.json').then(function(data) {
</span> $scope<span>.items = data;
</span> <span>});
</span> $scope<span>.name = ''; // This will hold the selected item
</span> $scope<span>.onItemSelected = function() { // this gets executed when an item is selected
</span> <span>console.log('selected=' + $scope.name);
</span> <span>};
</span><span>});</span>
5 단계 : 지침을 구성하고 사용하십시오
마지막으로 아래와 같이 HTML에서 지침을 호출하겠습니다.
결론 typeAhead<span>.directive('typeahead', function($timeout) {
</span> <span>return {
</span> <span>restrict: 'AEC',
</span> <span>scope: {
</span> <span>items: '=',
</span> <span>prompt: '@',
</span> <span>title: '@',
</span> <span>subtitle: '@',
</span> <span>model: '=',
</span> <span>onSelect: '&'
</span> <span>},
</span> <span>link: function(scope<span>, elem, attrs</span>) {
</span> <span>},
</span> <span>templateUrl: 'templates/templateurl.html'
</span> <span>};
</span><span>});</span>
이 자습서는 구성 옵션을 사용하여 AngularJS Typeahead 위젯을 만드는 방법을 보여주었습니다. 전체 소스 코드는 Github에서 다운로드 할 수 있습니다. 무언가가 불분명하거나 무엇이든 개선하고 싶다면 자유롭게 의견을 말하십시오. 또한 라이브 데모를 확인하는 것을 잊지 마십시오.
CSS를 사용하여 Typehead 드롭 다운의 모양을 사용자 정의 할 수 있습니다. 클래스 .dropdown-menu를 사용하여 드롭 다운 메뉴를 타겟팅 할 수 있습니다. 예를 들어, 배경색과 글꼴 색상을 변경하려면 다음 CSS 코드를 사용할 수 있습니다. .Dropdown-menu {<span><span><span><input> type<span>="text"</span> ng-model<span>="model"</span> placeholder<span>="{{prompt}}"</span> ng-keydown<span>="selected=false"</span> /></span>
</span><span><span><span><br>/></span>
</span>
<span><span><span><div> class<span>="items"</span> ng-hide<span>="!model.length || selected"</span>>
<span><span><span><div> class<span>="item"</span> ng-repeat<span>="item in items | filter:model track by $index"</span> ng-click<span>="handleSelection(item[title])"</span> <span>style<span>="<span>cursor:pointer</span>"</span></span> ng-class<span>="{active:isCurrent($index)}"</span> ng-mouseenter<span>="setCurrent($index)"</span>>
<span><span><span><p> class<span>="title"</span>></p></span>{{item[title]}}<span><span></span>></span>
</span> <span><span><span><p> class<span>="subtitle"</span>></p></span>{{item[subtitle]}}<span><span></span>></span>
</span> <span><span><span></span></span></span></span></span>
</div></span>></span>
</span><span><span><span></span></span></span>
</div></span>></span></span></span></span>
배경 색상 : #f8f9fa; 색상 : #. 343a40; 주 CSS 파일 또는 html 파일의
$ scope.onselect = function (item, model, label) {
// 선택한 항목 };
어떻게 할 수 있습니까? Angularjs에서 bootstrap과 함께 typeahead를 사용하십시오.
angularjs에 bootstrap과 함께 Typeahead를 사용하려면 AngularJS 응용 프로그램에 ui.bootstrap 모듈을 포함시켜야합니다. 이 모듈은 Bootstrap의 마크 업 및 CSS를 기반으로 한 AngularJS 지침 세트를 제공합니다. TypeAhead 지시문은 다음과 같이 사용할 수 있습니다.
이 예에서는 상태가 상태 배열, $ viewValue는 사용자가 입력 한 값이며 Limitto : 8 제안 수를 8로 제한합니다. Angularjs?
angularjs의 원격 데이터와 함께 Typeahead를 사용하려면 $ http 서비스를 사용하여 원격 서버에서 데이터를 가져올 수 있습니다. TypeAhead 속성을 사용하여 입력 필드를 페치 된 데이터에 바인딩 할 수 있습니다. 예를 들면 :
$ scope.getStates = function (val) {
return $ http.get ( '/api/states', { params : { 이름 : val
}
return response.data.map (function (item) { return item.name; });
}); };
html에서 getstates 함수를 사용할 수 있습니다. getStates ($ viewValue) "... />
이 예에서는 GetStates가 사용자. <..>
위 내용은 AngularJS -SitePoint로 타이핑 위젯 생성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

JavaScript 문자열 교체 방법 및 FAQ에 대한 자세한 설명 이 기사는 JavaScript에서 문자열 문자를 대체하는 두 가지 방법 인 내부 JavaScript 코드와 웹 페이지의 내부 HTML을 탐색합니다. JavaScript 코드 내부의 문자열을 교체하십시오 가장 직접적인 방법은 대체 () 메소드를 사용하는 것입니다. str = str.replace ( "find", "replace"); 이 메소드는 첫 번째 일치 만 대체합니다. 모든 경기를 교체하려면 정규 표현식을 사용하고 전역 플래그 g를 추가하십시오. str = str.replace (/fi

손쉬운 웹 페이지 레이아웃에 대한 jQuery 활용 : 8 에센셜 플러그인 jQuery는 웹 페이지 레이아웃을 크게 단순화합니다. 이 기사는 프로세스를 간소화하는 8 개의 강력한 JQuery 플러그인을 강조합니다. 특히 수동 웹 사이트 생성에 유용합니다.

그래서 여기 당신은 Ajax라는이 일에 대해 배울 준비가되어 있습니다. 그러나 정확히 무엇입니까? Ajax라는 용어는 역동적이고 대화식 웹 컨텐츠를 만드는 데 사용되는 느슨한 기술 그룹을 나타냅니다. 원래 Jesse J에 의해 만들어진 Ajax라는 용어

10 재미있는 jQuery 게임 플러그인 웹 사이트를보다 매력적으로 만들고 사용자 끈적함을 향상시킵니다! Flash는 여전히 캐주얼 웹 게임을 개발하기위한 최고의 소프트웨어이지만 JQuery는 놀라운 효과를 만들 수 있으며 Pure Action Flash 게임과 비교할 수는 없지만 경우에 따라 브라우저에서 예기치 않은 재미를 가질 수 있습니다. jQuery tic 발가락 게임 게임 프로그래밍의 "Hello World"에는 이제 jQuery 버전이 있습니다. 소스 코드 jQuery Crazy Word Composition 게임 이것은 반은 반은 게임이며, 단어의 맥락을 알지 못해 이상한 결과를 얻을 수 있습니다. 소스 코드 jQuery 광산 청소 게임

기사는 JavaScript 라이브러리 작성, 게시 및 유지 관리, 계획, 개발, 테스트, 문서 및 홍보 전략에 중점을 둡니다.

이 튜토리얼은 Ajax를 통해로드 된 동적 페이지 상자를 작성하여 전체 페이지 재 장전없이 인스턴트 새로 고침을 가능하게합니다. jQuery 및 JavaScript를 활용합니다. 맞춤형 Facebook 스타일 컨텐츠 박스 로더로 생각하십시오. 주요 개념 : Ajax와 JQuery

이 튜토리얼은 jQuery를 사용하여 매혹적인 시차 배경 효과를 만드는 방법을 보여줍니다. 우리는 멋진 시각적 깊이를 만드는 계층화 된 이미지가있는 헤더 배너를 만들 것입니다. 업데이트 된 플러그인은 jQuery 1.6.4 이상에서 작동합니다. 다운로드

이 JavaScript 라이브러리는 Window.Name 속성을 활용하여 쿠키에 의존하지 않고 세션 데이터를 관리합니다. 브라우저에 세션 변수를 저장하고 검색하기위한 강력한 솔루션을 제공합니다. 라이브러리는 세 가지 핵심 방법을 제공합니다 : 세션


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

WebStorm Mac 버전
유용한 JavaScript 개발 도구

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경
