저는 js mvc를 비교해 보았으며 좋은 사람들이 canjs에서하는 "라이브 바인딩"에 대해 자랑하고 있다고합니다. 누군가가 그것이 그것이 ... 등 backbonejs, 척추, 같은 다른 인기있는 MVC 년대에 비해 데 어떻게 도움이되는지backbonejs는 canjs와 같은 "라이브 바인딩"을 사용합니까?
1
A
답변
3
백본 지원 바인딩 모델을 구현 않지만, 다른 어떤 같이 자동을 아니다 정확하게 설명 할 수 클라이언트 측 응용 프로그램 프레임 워크 (예 : AngularJS의 데이터 바인딩 (ng-controller
또는 EmberJS의 bindAttr
). 모델의 상태 변화 등의 전망을 업데이트 할 몇 가지 정말 기초적인 코드를
Backbone.View
의
events
object 등을 사용
var ExampleView = Backbone.View.extend({
id: 'myView',
events: {
// using an #id selector here is also acceptable
'change [data-attrname=name]': function(e) {
// update the value in the model
this.model.set('name', $(e.target).val());
}
},
initialize: function(options) {
this.model.on('change', this.render, this);
},
render: function() {
var html = _.template('<h1 data-attrname="name"><%= name %></h1>',
this.model.toJSON());
this.$el.html(html);
return this;
}
});
다음 HTML을 렌더링 (
myView
암시에 의해 생성 된 사업부입니다 ExampleView)이 본질적으로 (도매 인터페이스로부터 직접 결합하고있는
<div id="myView">
<h1 data-attrname="name"></h1>
</div>
) 때 모델 변경 전체 뷰를 보내고 render
을 재. 백본은 일부 다른 프레임 워크보다 덜 독설적으로 디자인되어 다른 라이브러리를 추가 할 때 적합하게 구현할 수 있습니다. 더 자동 바인딩을 모델링하는 방법에 대한 몇 가지 더 정교한 기술에 대한
6
사용 CanJS를 사용하면 모든 코드를 다음과 같이 바꿀 수 있습니다.
<h1><%= model.attr('name') %></h1>