AngularJS의 기본 소개

零到壹度
풀어 주다: 2022-12-07 09:49:43
원래의
2031명이 탐색했습니다.

이 글의 내용은 angularjs에 대한 기본 소개입니다. 이제 필요한 친구들이 참고할 수 있도록 공유하겠습니다.

핵심 포인트:

프론트엔드 JS 프레임워크: 프론트엔드 반복 기능 개발을 위한 JS 사용을 캡슐화하고 HTML을 확장하며 주로 페이지 작업 및 표시에 사용됩니다.

핵심: MVC, 모듈화, 양방향 데이터 바인딩, 종속성 주입, 의미 체계 태그, 표현식 등 [추천 관련 동영상 튜토리얼: angularjs 동영상 튜토리얼]

양방향 데이터 바인딩

관련 js 파일 소개

<!DOCTYPE html>
<html>
    <head>
       <meta charset="UTF-8">
       <title></title>
       <!--引入Angularjs-->
       <script type="text/javascript" src="../js/angular.min.js" ></script>
    </head>
    <body>
       <!--匿名应用模块-->
       <p ng-app="">
           <input ng-model="username" name="username"/>
           <input ng-model="username"/>
           <p>{{username}}</p>
           <p ng-bind="username"></p>
       </p>
    </body>
</html>
로그인 후 복사


ng-app=”An 익명의 애플리케이션 모듈 , 일반적으로 후속 초기화를 용이하게 하기 위해 이름을 작성해야 합니다.

ng-model: form 요소의 값을 Angularjs 내부 변수에 자동으로 바인딩합니다.

ng-bind: 표현식과 기능은 동일하지만 사용법이 다릅니다. 일반적으로 비양식 요소를 바인딩하고 변수를 표시하는 데 사용됩니다.

ng-bind와 {{}}의 차이점: 전자는 레이블 하위 태그의 모든 내용을 변수의 내용으로 바꾸는 반면, 후자는 현재 위치에 있는 변수의 내용만 표시합니다.

모듈형 MVC(MVVM) 기반

View: 주로 HTML 정적 페이지 데이터 태그를 나타내며 주로 표시에 사용됩니다.

모델: 주로 보기 및 논리적 처리를 위한 일부 데이터만 채웁니다. 예를 들어 json, 변수

제어: 일부 js 코드, 로직 작성. 주로 모델을 가져오고, 뷰를 채우고, 뷰에서 데이터를 가져오고, 모델을 채우는 것입니다.

m과 vm 간의 변환:

예를 들어 변수:

var username=”XiaoQi”;
$scope.username=username;
로그인 후 복사

vm의 변수는 실제로 전역 변수 $scope의 속성에 바인딩됩니다.

페이지: {{username}}

참고: Angularjs 변수는 페이지의 $scope에 추가할 수 없습니다.

타이머 등 내부 js에 의해 변수가 변경된 경우 기본적으로 Angularjs는 양방향 데이터 바인딩 및 표시를 구현할 수 없으며 강제 알림(새로 고침)을 수행하려면 $.digest를 사용해야 합니다. 페이지가 열립니다:

<!DOCTYPE html>
<html>
    <head>
       <meta charset="UTF-8">
       <title></title>
       <!--引入Angularjs-->
       <script type="text/javascript" src="../js/angular.min.js" ></script>
    </head>
    <body>
       <!--<p ng-app="myApp" ng-controller="myCtrl"  ng-init="username=&#39;Jack&#39;">-->
       
       <p ng-app="myApp" ng-controller="myCtrl">
           
           <input ng-model="username"/>
           <p>{{username}}</p>
       </p>
       
       <!--控制器-->
       <script type="text/javascript">
           //初始化应用模块
           //参数1:应用模块的名字
           //参数2:使用扩展模块,这里没有
           var myApp=angular.module("myApp",[]);
           //初始化控制器:认为控制器绑定了一堆js
           //参数1:控制器的名字
           //参数2:js函数
           myApp.controller("myCtrl",["$scope",function ($scope) {
              //初始化变量
              $scope.username="XiaoQi";
              //可以写任何的js
           }]);
           
       </script>
    </body>
</html>
로그인 후 복사



참고:

이름이 지정된 애플리케이션 모듈과 컨트롤러를 정의하는 경우, 초기화하려면 js를 사용해야 합니다. !

종속성 주입 DI




버튼 이벤트 바인딩

<!DOCTYPE html>
<html>
    <head>
       <meta charset="UTF-8">
       <title></title>
       <!--引入Angularjs-->
       <script type="text/javascript" src="../js/angular.min.js" ></script>
    </head>
    <body>
       <!--视图-->
       <p ng-app="myApp" ng-controller="myCtrl">
           <input ng-model="username"/>
           <input type="button" value="清空数据1" ng-click="clearMsg()"/>
           <input type="button" value="清空数据2" ng-click="username=&#39;&#39;"/>
           <p>Hello {{username}}</p>
       </p>
       <!--控制器-->
       <script type="text/javascript">
           //初始化应用模块
           var myApp=angular.module("myApp",[]);
           //初始化控制器
           myApp.controller("myCtrl",["$scope",function($scope){
              //初始化一个angularjs的事件
              $scope.clearMsg=function(){
                  //清空数据
                  $scope.username="";
              };
           }]);
       </script>
    </body>
</html>
로그인 후 복사


<!DOCTYPE html>
<html>
    <head>
       <meta charset="UTF-8">
       <title></title>
       <!--引入Angularjs-->
       <script type="text/javascript" src="../js/angular.min.js" ></script>
    </head>
    <body>
       <!--视图-->
       <p ng-app="myApp" ng-controller="myCtrl">
           <table border="1">
              <tr>
                  <th>序号</th>
                  <th>商品编号</th>
                  <th>商品名称</th>
                  <th>商品价格</th>
              </tr>
              <tr ng-repeat="product in  products">
                  <td>{{$index+1}}</td>
                  <td>{{product.id}}</td>
                  <td>{{product.name}}</td>
                  <td>{{product.price}}</td>
              </tr>
           </table>
       </p>
       <!--控制器-->
       <script type="text/javascript">
           angular.module("myApp",[])
           .controller("myCtrl",["$scope",function($scope){
              //json数组
              $scope.products=[
                  {"id":1001,"name":"电视机","price":998},
                  {"id":1002,"name":"洗衣机","price":988898}
              ];
           }])
        </script>
    </body>
</html>
로그인 후 복사
product: 원하는 대로 각 순회에 대한 임시 anglejs 개체를 작성합니다. 여기서는 각 json 개체를 나타냅니다.


라우팅 메커니즘

이전: 포함에는 단지 재사용된 페이지인 페이지가 포함되어 있지만 재사용된 페이지도 전체적으로 새로 고쳐집니다.

Angularjs 라우팅을 통해 부분 새로고침이 가능하며, 반복되는 머리와 꼬리가 새로고침 없이 구현될 수 있습니다. 그리고 다중 보기 단일 페이지 효과.

기본 구현: html에서 #(앵커)를 통해 구현됩니다.

공식 예시:


작성: url+#+subpath (가운데 표시)

라우팅 모듈 소개:

<!--引入路由模块-->
       <script type="text/javascript"  src="../js/angular-route.min.js"  ></script>
로그인 후 복사
rreee
ng-view: 라우팅 결과의 내용을 표시하는 데 사용


when: 판단문

template: html의 결과, html 태그 지원

templateUrl: 다른 페이지 로딩 지원



관련 권장 사항:

AngularJS의 모든 버전을 다운로드하세요

AngularJS 학습 요약

Angularjs와 Angle4의 차이점. Angle4를 사용하는 이유

angular 입문 튜토리얼

위 내용은 AngularJS의 기본 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿