Knockout在可观察数组中订阅js对象中的observable

时间:2013-06-18 13:39:25

标签: knockout.js coffeescript

我有一个CoffeeScript类WorkOrderLabor(http://arcturo.github.io/library/coffeescript/03_classes.html),它有一个可观察的work_item_id

我想订阅这个可观察的更改并运行一些代码。

这就是我在做的事情:

self.addWorkOrderLabor = ->
  wol = new WorkOrderLabor()

  wol.work_item_id.subscribe = (val) ->
    console.log val

  self.work_order.work_order_labors.push(wol)

这不起作用。它实际上在调用函数时吐出val但在work_item_id更改时不会吐出。{/ p>

work_order_labors是一个可观察的数组。

这里最好的方法是什么?我究竟做错了什么?谢谢!

1 个答案:

答案 0 :(得分:1)

您的CoffeeScript语法错误,因为subscribeko.observable上的函数,您需要将回调函数作为参数传递。

所以正确的语法是:

wol.work_item_id.subscribe (val) ->
    console.log val

因此,不需要使用新函数覆盖原始=的{​​{1}}。