Tengo el siguiente CoffeeScript para generar Javascript para KnockoutjsCoffeeScript, Knockout y observables
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
Para representar HTML utilizo este código
<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>
Sin embargo, en el HTML todos los artículos mostrar los valores de el último NewsItem agregado a la colección.
¿Alguna pista?
creo que esto es siempre la forma en que debe hacerse. – Tyrsius
@Tyrsius Depende, si desea un miembro de la clase propia para cada instancia específica (debo estar de acuerdo, querrá eso la mayor parte del tiempo), entonces sí. Solo necesitas saber la diferencia. – Niko
Supongo que habrá ocasiones en que desee una propiedad estática, pero esta debería ser la excepción, no la regla. – Tyrsius