如何将can.compute传递给can.Component?

时间:2014-12-29 23:21:46

标签: canjs

如何将计算传递给组件,以便更改一个组件中选定的值将影响另一个组件中的值。

实施例

http://jsbin.com/feleko/1/edit?html,js,console,output

我正在尝试进行设置,以便在第一个选择中选择一个值会更改第二个选项中的可用选项。我认为监听dom更改事件应该是直截了当的,但我似乎没有得到我可以更新的计算,或者可以访问父作用域以便使用属性名来更新它。同样,最大值不是接收更新的活动对象。

1 个答案:

答案 0 :(得分:1)

我发现了一种突兀的方式。 can.mustache提供了一个data帮助器,它将当前上下文放在元素的数据上。

<select {{data 'context'}} value="a">

然后在init事件中,我可以捕获元素数据并将其分配给范围,以便它可用于范围函数。

events: {
  init: function(el, opt) {
    opt.scope.context = el.data('context')
  }
}

如果笨拙,可以查找值。

this.context[this.attr('value')]