그래서 RequireJs, Mustache 및 Backbone.js를 사용하여 테스트 응용 프로그램을 만들고 있습니다. Mustache 템플릿을 사용하여 모델 컬렉션을 렌더링하는 데 약간의 성공을 거두었습니다. 그러나 내 콧수염 서식 파일에는 단추가 있으며보기의 단추에 클릭 이벤트를 바인딩하려고하면 단추를 클릭해도 콜백 함수가 호출되지 않습니다. 나는 정말로 붙어있다, 누군가 내가 올바르게하지 않고있는 곳을 나에게 말할 수 있냐?Backbone.js와 함께 콧수염을 사용할 때 이벤트가 작동하지 않습니다.
ItemView.js : 여기
내 코드입니다define(['jquery', 'backbone', 'underscore', 'mustache', '../../atm/model/item'], function ($, Backbone, _, Mustache, Item) {
var ItemView = Backbone.View.extend({
initialize: function() {
},
tagName: 'li',
events: {
'click .button': 'showPriceChange'
},
render: function() {
var template = $('#template-atm').html();
var itemObj = this.model.toJSON();
itemObj['cid'] = this.model.cid;
var rendering = Mustache.to_html(template, itemObj);
this.el = rendering;
return this;
},
showPriceChange: function(event) {
alert('Changing...');
$('#' + elemId).empty();
$('#' + elemId).append(document.createTextNode('Changed'));
},
});
return ItemView;
});
atm.html :
<!DOCTYPE html>
<html>
<head>
<title>Elevator</title>
<script data-main="scripts/main" src="scripts/require-jquery.js"></script>
<style type="text/css">
</style>
</head>
<body>
<h1>Vending Machine</h1>
<div id="atm-items">
</div>
<script id="template-atm" type="html/template">
<li>
<p>Item: {{name}}</p>
<label for="price-{{cid}}">Price:</label>
<input id="price-{{cid}}" type="text" value="{{price}}"/>
<button class="button">Change</button>
<p id="status-{{name}}-{{cid}}">- -</p>
</li>
</script>
</body>
</html>
나는 버튼을 클릭하면 게시/제출한다고 생각합니다. 단추의 기본값입니다. 그것을 위해'type = "button"'을 추가하고 무슨 일이 일어 났는지 말해 보아라. – Deeptechtons
No go :-(버튼 요소를 으로 변경했지만 여전히 이벤트가 없습니다. – DaHoopster