10
我有以下的CoffeeScript產生的JavaScript Knockoutjs的CoffeeScript,敲除觀察到
class NewsItem
content: ko.observable("")
title: ko.observable("")
constructor: (data,dispForm) ->
@content data.get_item("content")
@title data.get_item("title")
@id = data.get_id()
class NewsItemViewModel
collection: ko.observableArray()
loadAll: =>
listEnumerator = items.getEnumerator()
while listEnumerator.moveNext()
currentItem = listEnumerator.get_current()
@collection.push new NewsItem currentItem, @list.get_defaultDisplayFormUrl()
return
$ ->
viewModel = new NewsItemViewModel
ko.applyBindings viewModel
return
要渲染HTML我使用此代碼
<ul id="results" data-bind="template: {name: 'item_template', foreach: collection}">
</ul>
<script id="item_template" type="text/x-jquery-tmpl">
<li>
<h3><a href="/" data-bind="text: title"></a></h3>
<p>
<textarea data-bind="value: content"></textarea>
<input type="button" value="save" data-bind="enable: content().length > 0">
</p>
</li>
</script>
然而,在HTML的所有項目顯示的值添加到集合中的最後一個NewsItem。
任何提示?
我覺得這始終是它應該怎麼做。 – Tyrsius
@Tyrsius這取決於 - 如果你想爲每個特定實例創建一個自己的類成員(我必須同意,你會在大多數時間需要),那麼是的。你只需要知道差異。 – Niko
我想有些時候你想要一個靜態屬性,但這應該是例外,而不是規則。 – Tyrsius