백본/marionette.js를 사용하여 .eco 템플릿 내에서 모델의 메서드에 액세스하려고합니다. 나는 Expense
모델을 day()
메쏘드로 가지고 있는데, 이는 moment.js를 사용하여 '13th'를 반환한다. 예를 들면 :Marionette.js에서 Backbone.Model 메소드에 액세스하는 방법 ItemView template?
class Expense extends Backbone.Model
day: ->
moment.get('date').format('Do')
나는 다음과 같은 새로운 Expense
를 작성하고 호출 day()
방법 할 수 있습니다
coffee = new Expense({name: "Coffee", amount: 2.50, date: "2014-01-13T13:50:00Z"})
coffee.day() # 13th
을하지만, 다음과 같은보기 내에서 day()
에 액세스를 시도하고 템플릿은 나에게 몇 가지 문제를 일으키는 :
class ExpenseView extends Marionette.ItemView
template: "views/_expense"
# views/_expense.jst.eco
<h3 class="expense__name"><%= @name %></h3>
<p class="expense__day"><%= @day() %></p>
I 을 이해하면이 작동하지 않습니다 ... ItemView
은 @model.toJSON()
을 반환하는 serializeData
을 호출하므로 Expense
의 day()
메서드에 액세스 할 수 없습니다. 모델 방법을 템플릿에 사용할 수 있도록 백본/마리오 네트 커뮤니티에 설정된 패턴이 있습니까? 이 문제에 대해 갈 수있는 가장 좋은 방법인지 내가 확실 해요
class ExpenseView extends Marionette.ItemView
template: "views/_expense"
serializeData: ->
_.extend(@model.toJSON(), model: @model)
templateHelpers:
day: ->
@model.day()
을하지만 :
지금까지, 나는 그것이 작동되도록하려면 다음을 수행 한? 감사!
브라이언, 고맙습니다.이 백본을 좋아합니다. 뮤 테이터 플러그인! 나는 그것이 내 견해의 논리에서 모델로 어떻게 움직이는지를 좋아한다 : 레일의 스코프. 'transient : true'도 좋은 추가입니다! – danscotton