본문으로 바로가기

AngularJS directives

category 웹/AngularJS 2019. 2. 19. 21:30

 

AngularJS directives


AngularJS directives는 HTML을 새로운 요소들로 확장시켜주는 것입니다.


앞서 봐왔던 ng-로 시작하는 것들 모두를 뜻합니다.


ng-app은 AngularJS application을 초기화시킵니다.


ng-init은 application data를 초기화시킵니다. 


ng-model은 input이나 textArea같은 값들을 application data로 바인딩 합니다.



앞서 보여드렸지만 간단한 예시로


<div ng-app="" ng-init="firstName='John'">

<p>Name: <input type="text" ng-model="firstName"></p>
<p>You wrote: {{ firstName }}</p>

</div>


=> ng-init으로 firstName을 John으로 초기화 시키고 ng-model로 input의 값을 바인딩 시킵니다.


=> 표현식으로 값을 출력해줍니다.


=> 따라서 input에 넣는 값에따라 값이 바뀌겠죠.


즉 {{ }} 표현식은 ng-model로 인해 바인딩 됩니다.


그리고 ng-init으로 초기화하는 형태는 흔히 사용하지 않습니다. 컨트롤러나 모듈에 의해 초기화를 시킵니다.


만약에 반복하고 싶다면 ng-repeat을 이용하면 됩니다.


예를 들어


<div ng-app="" ng-init="names=['Jani','Hege','Kai']">
  <ul>
    <li ng-repeat="x in names">
      {{ x }}
    </li>
  </ul>
</div>


=> names에 Jani Hege Kai로 초기화 시켜 이를 반복해서 출력해주기 위해서 ng-repeat을 이용합니다.


=> ng-repeat으로 마치 for문처럼 비슷하게 쓰입니다.


=> x에 출력할 담길 변수 names는 반복하여 꺼낼 변수입니다.


좀더 응용해보면 이렇게도 쓰이겠죠. names라는 변수에 

names=[{name:'Jani',country:'Korea'},{name:'Kai',country:'UK'}] 처럼말이죠


이때는 출력 변수 x가 있으면 .연산자로 해당 값을 참조해줍니다.


예를 들어서


<div ng-app="" ng-init="names=[
{name:'Jani',country:'Norway'},
{name:'Hege',country:'Sweden'},
{name:'Kai',country:'Denmark'}]"
>


<ul>
  <li ng-repeat="x in names">
    {{ x.name + ', ' + x.country }}
  </li>
</ul>

</div>


=> ng-repeat으로 x에 담고 이를 .연산자로 값을 참조합니다.


또한 사용자 여러분들이 직접 directive를 정의 할 수 있습니다.


app.directive 로 이용하면 됩니다.


단 조건이 있습니다.


  • 새로운 directive를 호출하기 위해선 새로운 diretcive이름과 동일하게 HTML 요소를 만듭니다.
  • directive이름을 지정할 경우 낙타표기법을 사용하지만 이를 사용하기위해선 ' - ' 를 붙여주어 표시합니다.
아래 예를 통해 알아봅시다.

<body ng-app="myApp">

<w3-test-directive></w3-test-directive>

<script>
var app = angular.module("myApp", []);
app.directive("w3TestDirective"function() {
  return {
    template : "<h1>Made by a directive!</h1>"
  };
});
</script>

</body>


=> module을 정의해주고 이를 이용하여 .directive를 통해 새로운 directive인 w3TestDirective를 정의합니다.
=> 이때 낙타표기법을 이용했습니다.
=> 이를 사용할 때는 -을 붙여준 <w3-test-directive></w3-test-directive>

=> 을 이용합니다.


이를 사용하기 위한 방법은 총 4가지가 있습니다. 아래와 같습니다. 


<아래의 출처는 w3school>


<w3-test-directive></w3-test-directive>
Try it Yourself »

Attribute

<div w3-test-directive></div>
Try it Yourself »

Class

<div class="w3-test-directive"></div>
Try it Yourself »

Comment

<!-- directive: w3-test-directive -->
Try it Yourself »




' > AngularJS' 카테고리의 다른 글

AngularJS 모델  (0) 2019.02.20
AngularJS 모듈  (0) 2019.02.18
AngularJS 표현식  (0) 2019.02.16
AngularJS 소개  (0) 2019.02.14