Davis가 올바르게 이해했지만 코드에 몇 가지 개선 사항이 있습니다.
Ember.Button
은 더 이상 사용되지 않습니다. 대신 button
태그를 사용하십시오.
- 보기에서
submit
이벤트를 정의하십시오. 양식 제출시 트리거됩니다. 버튼에 수동으로 액션을 설정할 필요가 없습니다.
- 귀하의 의견은
$.ajax
건을 처리해서는 안됩니다. 컨트롤러에 위임하십시오.
그래서, 리팩토링 후, 코드는 다음과 같이 표시됩니다
App = Ember.Application.create({});
App.loginController = Ember.Object.create({
login: function(username, password) {
// $.ajax stuff goes here
}
});
App.LoginFormView = Ember.View.extend({
tagName: 'form',
username: null,
password: null,
submit: function(event) {
event.preventDefault();
var username = this.get('username');
var password = this.get('password');
this.get('controller').login(username, password)
},
});
그리고 템플릿 :
<script type="text/x-handlebars" data-template-name="login">
{{#view App.LoginFormView}}
<label>
Username:
{{view Ember.TextField valueBinding="view.username"}}
</label>
<label>
Password:
{{view Ember.TextField type="password" valueBinding="view.password"}}
</label>
<button>Login</button>
{{/view}}
</script>
편집 : 몇 가지 생각 후, 아마 모든 논리 I을 컨트롤러에 넣어 라우터에 실제로 가야합니다. 모델을 뷰에 연결하는 데 컨트롤러를 사용해야합니다.
Ember.JS에는 체크 박스 및 텍스트 필드와 같은 기본 UI 항목이 내장되어 있지 않으므로 작성된 위젯 라이브러리 인 [FlameJS] (https://github.com/flamejs/flame.js)를 살펴보십시오. Ember의 위에. Ember와 기존 프레임 워크를 통합하는 프로젝트도있었습니다. [jQuery-UI-Ember] (https://github.com/lukemelia/jquery-u-ember) 또는 [Ember-Bootstrap] (https : // github. com/emberjs-addons/ember-bootstrap) –
유용 할 경우 내 대답에 동의를 클릭하십시오.) –