2012-08-06 6 views
3

더 나은 구조화 된 JS 코드 작성을 돕기 위해 프레임 워크를 살펴 보았으며 백본을 발견했습니다. 공개 및 개인 속성 및 멤버, 상속 등을 사용하여 클래스를 만들기위한 많은 기능이있는 것으로 보입니다.AngularJS with BackboneJS 사용

Angular JS는 모델에 대한 마크 업의 자동 바인딩 및 영리한 속임수와 같은 완전히 다른 작업을 수행하는 것 같습니다. 템플릿 처리, 필터링, 정렬 등

내 질문은 내가 선택해야하는 것이 아니라 두 가지 모두를 사용하는 것이 현명합니까? AngularJS는 정말 멋지지만, 내가 뭔가를 놓치지 않으면 않는 한 당신과 함께 일할 수있는 물건을 제공하는 것 같지 않습니다. 이게 말이 돼?

+1

나는 같은 딜레마에 내 자신을 발견, 이것은 매우 처참한 질문이라고 생각합니다. 각 공급자는 _binding_에 대한 많은 마법을 가지고 있지만 backbone이 제공하는 _inheritance_ 및 _collections 추상화가 누락되었습니다. – fguillen

답변

3

Angular와 다른 프레임 워크의 결합이 실제로 많은 의미를 갖을 지 확신하지 못합니다.

반면에 백본은 더 구성 가능합니다. 예를 들어 Knockback 프로젝트를 살펴볼 수 있습니다.이 프로젝트는 백본과 KnockoutJS가 함께 잘 작동하도록합니다. 녹아웃은 Angular에서 찾을 수있는 것과 상대적으로 가까운 MVVM 접근 방식을 사용합니다.

+1

백본 (backbone)은 다음과 같은 일을하도록합니다 ... "var PrivateNote = Note.extend ({initialize : function() {...}});" , 내가 생각했던 것입니다. 비슷한 앵귤러를 볼 수 없습니다. – jonhobbs

+0

안녕하세요 jonhobbs, 그냥 기억해 .. 이것은 자바 스크립트입니다. OO를 쓰지 않아도됩니다. 프로토 타입 언어입니다 :-) –

+0

사실, OO가 반드시 필요한 것은 아니지만 많은 JS가있는 큰 관리자 시스템을 만들기 시작하고 있습니다. 가능한 한 체계적으로 – jonhobbs

1

AngularJS는 의도적으로 특정 상속 스타일을 부과하지 않으므로 원하는대로 자유롭게 할 수 있습니다. Backbone.js의 상속 모델이 마음에 들면 underscore (Backbone.js에 포함되어 있음)을 사용하여 .extend 도우미를 제공 할 수 있습니다.

+3

Backbone.extend는 _.extend와 같은 것이 아닙니다. _.extends는 객체에 속성을 추가하는 반면 Backbone.extend는 하위 클래스를 생성합니다. http://backbonejs.org/docs/backbone.html#section-189의 도우미 섹션을 참조하십시오. –

2

데이터 (예 : 모델)에 OO를 쓰려면 Base.js과 같은 라이브러리 만 사용하십시오. extend과 같은 메소드를 사용하여 멋진 OO 구문, 상속을 제공합니다. 좋은 부분은 myObject.var과 같은 getter 구문을 유지하므로 getter myObject.get('var')을 사용해야하는 백본과는 반대로 Angular와 훌륭하게 재생되므로 데이터 바인딩이 올바르게 작동합니다.

이러한 구문과 철학의 차이점과 이유를 이해하려면 one of the Angular author's answer here in SO을 읽어보십시오.