Как передать can.compute в can.Component?

Как я могу передать вычисления в компоненты, так что изменение значения в выбранном в одном компоненте повлияет на значение в другом компоненте.

пример

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

Я пытаюсь настроить его так, чтобы выбор значения в первом выборе изменял параметры, доступные во втором. Я думаю, что прослушивание событий dom change должно быть простым, но я не получаю вычислений, которые я могу обновить, или у меня нет доступа к родительской области видимости, чтобы использовать имя атрибута для его обновления. Аналогично, максимальное значение не является активным объектом, который получает обновления.

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')]
Другие вопросы по тегам