Search code examples
javascriptdata-bindingractivejs

How can I observe multiple key paths with ractive?


I'd like to observe changes to a key path per docs on ractive observe. However, I'd like to be able to observe multiple paths at the same time, eg, given:

var binding = new Ractive({
  el: '.here',
  data: {
    items: [
      {
        finished: false
      },
      {
        finished: false
      }  
    ]
  },
  template: someTemplate
})

I'd like to be able to do something like:

binding.observe('items.*.finished')

Or similar to be able to watch the finished property of any item in the array.

What's the best way to do this?


Solution

  • Exactly as you described! http://jsfiddle.net/rich_harris/c3yc848z/

    Note that the values of any * placeholders are passed to the callback as additional arguments, beyond the (newValue, oldValue, keypath) that you normally get – so in this case there'd be a fourth index argument.