Model
에 사용 된 것과 유사한 변형자를 사용하는 방법은 Backbone.js
/Marionette
이지만 Collection
에 있습니까?템플릿에서 참조 할 백본 컬렉션 뮤 테이터
MyCollection.js
에서 :
export default Backbone.Collection.extend({
model: MyModel,
...
mutators: {
foo: function() {
if (this.models.length)
return this.models[0].get('foo');
return "default value";
}
}
})
MyModel.js
에서 :
export default Backbone.Model.extend({
mutators: {
foo: function() {
return "bar";
}
}
})
그리고 template.ejs
에서 예를 들어
<div>
<h1><%= myCollection.foo %></h1>
<% for (var myModel of myCollection) { %>
<span><%= myModel.foo %></span>
<% } %>
</div>
나는 TypeError: Cannot read property 'foo' of undefined
오류를 얻는 것 같다, 그래서 ' 이것이 가능한지 또는 변경이 있는지 궁금해한다. 네이트 방법? 나는 MyCollection.foo
로직을 템플릿으로 이동하는 것을 피하고 싶지만, 가장 쉬운 방법 인 것 같다.
설명해 주셔서 감사 드리며, 오타를 만들어 내 코드를 일반화하려고 시도했습니다. 나는 뮤 테이터 (Mutators)가 기본 플러그인이라는 인상하에 있었지만 백본/마리오네트와 내가 작업하고있는 코드베이스에 상당히 익숙합니다. 컬렉션에 뮤 테이터 (Mutators)를 제공하는 예가 있다는 것이 맞습니다. – Tom
@Tom 그리고 1 가지 더, 나는'myModel.foo'가 밑줄 템플릿의 myModel.get ("foo")' –