기본 콘텐츠로 건너뛰기

Angular JS 용어 정리




  • Html
  • JavaScript
  • CSS
<div ng-controller="TodoCtrl">
    <span>{{remaining()}} of {{todos.length}} remaining</span>
    [ <a href="" ng-click="archive()">archive</a> ]
    <ul class="unstyled">
        <li ng-repeat="todo in todos">
            <input type="checkbox" ng-model="todo.done">
            <span class="done-{{todo.done}}">{{todo.text}}</span>
        </li>
    </ul>
    <form ng-submit="addTodo()">
        <input type="text" ng-model="todoText"  size="30" placeholder="add new todo here">
        <input class="btn-primary" type="submit" value="add">
    </form>
</div>

해당 글은 angular js 에서 예제를 갖고 왔다

여기서 angular의 기본 문법을 보자

1.ng-controller:컨트롤러 선언
  ng-click:클릭하면 동작
<div ng-controller="TodoCtrl">
    이 안에 있는 Angular 엘리먼트들은 스크립트에서 "TodoCtrl"로
    선언한 메소드를 컨트롤러로 사용하겠다고 선언을 한것이다.
</div>

2.ng-repeat:모델 선언
<li ng-repeat="todo in todos">
    todo라는 js안에서 todos라는 json형태의 내용들을 사용할 수 있게 된다.
    <input type="checkbox" ng-model="todo.done">
    ng-model 이것은 todos안에 있는 done이라는 변수를 사용하게 되는 것이다.
<li>

3.ng-submit:submit으로 동작
<form ng-submit="addTodo()">
    <input type="text" ng-model="todoText"  size="30" placeholder="add new todo here">
    <input class="btn-primary" type="submit" value="add">
    여기서 중요한건 angularJS에서는 submit으로 js로 넘겨서 ng-model todos의 모델을 사용함으로
    모델을 "todoText"로 모델로 선언해둔 곳을 통하여 addTodo로 보내서 하나씩 추가하게 되는 방식이다.
</form>


이 글만 보더라고 Angular JS자체에서 MVC패턴을 사용할 수 있다는 큰 장점을 볼 수 있을것이다.

앞으로 계속 써봐야 알겠지만 이 프레임워크를 통하여 script의 MVC패턴을 간결하게 표현할 수 있다는거에 신기하면서

앞으로 익숙해진다면 유지보수에서 보기 편하고(단 Angular JS를 알고있는 사람한에서) 파워풀한 소스가 될 것 같다.


실 작동(reality work) URL[http://jsfiddle.net/Kwangheum/8vDMT/1/]

댓글

이 블로그의 인기 게시물

Ext JS 4.2 트리 기본 구조

Ext.require([ '*' ]); Ext.onReady( function (){      var   store = Ext.create( 'Ext.data.TreeStore' , {             id: 'store' ,             proxy: {             data : data             type: 'memory' ,             reader:{                 type: 'json '             }         },         root: {             text: "ROOT" ,             id: "ROOT" ,             expanded: tru e         }     });      var  tree = Ext.create( 'Ext.tree.Panel' , {         id: 'tree' ,         rootVisible: true ,         multiSelect: false ,         store: store,         height: 600,         renderTo: Ext.get( 'treeList' )     });  }); 필자가 생각하기에 Ext Js 트리 가장 기본 옵션인거 같다. 실 작동 URL[ http://jsfiddle.net/Kwangheum/vkbSS/ ] Ext JS 4.2 트리 1. Ext JS 4.2 트리 기본구조 2. Ext JS 4.2 트리 이름 변경하기 3. Ext Js 4.2 트리 그리드 에디팅 4. Ext JS 4.2 트리 드래그 & 드롭 5. Ext JS 4.

맥에서 ssh 터널링 하는 방법

이번에 작업하면서 터널링 열어서 접속 해야하는 경우가 발생하였다.. (사실 기존에는 ssh 접속만 했지 깊이 파보진 않아서.. 이번에 처음으로 터널링을 해보았다.) 회사에서 알려준 방법은 windows에서 putty로 하는 방법을 알려줬는데 putty 와 비교하면서 설명을 해보겠다. 회사에서 준건 이렇게 이미지를 받았다. 맥에서는 터널링서버IP와 포트 그리고 터널링을 이용하여 실제 접속하고싶은 IP와 포트를 알면된다. 터미널에서 $ ssh 터널링 접속 아이디@터널링서버 IP -p 22 -N -L 10555:실제 접속하고싶은 IP:22 이렇게 작성을 하시면 실제 터널링을 열어주게 된 것이다.  사용된 옵션 :  -p [number]   : number 포트번호로 접속한다.  -N  : 원격 쉘을 실행시키지 않고 접속만 유지한다.  -L [로컬포트번호:호스트:호스트포트번호]  : 로컬 포트번호로 listen 소켓을 열고 들어오는 패킷을 원격지에서 호스트:호스트포트번호로 전송한다.  [출처 http://blog.lael.be/post/845] 그런다음 새로운 터미널에서 $ ssh (실제 접속하고싶은 IP)에서 사용될 ID@127.0.0.1 -p 10555 이렇게 하면 터널링에 접속이 된다!

Ext JS 4.2 트리 그리드 에디팅

var tree = Ext.create( 'Ext.tree.Panel' , {      id: "gridTree" ,     autoHeight: true ,     renderTo: Ext.get( 'dataArea' ),     useArrows: false ,     rootVisible: false ,     store: store,     multiSelect: true ,     plugins: [          Ext.create( 'Ext.grid.plugin.CellEditing' , {             clicksToEdit: 1         })     ],     rowLines: true ,     columns: 컬럼(column) }); tree.on( 'validateedit' , function (editor, e) {      if (e.record.data[e.field]==e.value){         e.cancel = true ;     } }); tree.on( 'edit' , function (e){     console.log( "필드 값(field value)" +e.context.field);     console.log( "이전  값(before value)" +e.context.originalValue);     console.log( "현재  값(now value)" +e.context.value); }); 필자는 그리드에서 수정 된것을 'validateedit'라는 좋은 옵션이 있는데 'edit' 에서 하고있었다. Ext Js 에서는 수정을 한 후 적용 전에 벨리데이션을 하는 곳이 따로 존재하였다.