我要用Coffeescript用Knockout。以下是簡單的示例代碼。用咖啡標記敲除
**** coffeescript ****
class NewsItem
constructor : (content) ->
@content = ko.observable(content)
class ViewModel
constructor : ->
@items = ko.observableArray()
@item = ko.observable()
@items.push new NewsItem('a')
@items.push new NewsItem('b')
@items.push new NewsItem('c')
@addItem = ->
@items.push new NewsItem @item()
$ ->
ko.applyBindings new ViewModel
return
**** html ****
<ul data-bind="foreach: items">
<li data-bind="text: $data.content"></li>
</ul>
<div>
<input type="text" data-bind="value: item" />
<button data-bind="click: addItem">Add Item</button>
</div>
上面的代碼運行良好。我想知道的是,我應該申報使用這關鍵字如上或原型成員的addItem事件如下
class NewsItem
constructor : (content) ->
@content = ko.observable(content)
class ViewModel
constructor : ->
@items = ko.observableArray()
@item = ko.observable()
@items.push new NewsItem('a')
@items.push new NewsItem('b')
@items.push new NewsItem('c')
addItem : ->
console.log @item()
@items.push new NewsItem @item()
$ ->
ko.applyBindings new ViewModel
return
我理解觀察到的性質(內容,項目,項目)應實例會員使用此關鍵字可以避免在實例對象之間共享值。沒關係,但如何事件功能,如addItem方法在我的情況下
如果還有什麼可以繼續的話,我一直聲明我的方法可以像第二個例子中那樣使用數據綁定。 – Thewads 2013-04-10 07:59:46