-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathknockout-immybox.coffee
35 lines (32 loc) · 1.13 KB
/
knockout-immybox.coffee
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
$ ->
ko.bindingHandlers.immybox_choices =
init: (element, valueAccessor, allBindingsAccessor) ->
choices = ko.utils.unwrapObservable valueAccessor()
options = (ko.utils.unwrapObservable allBindingsAccessor().immybox_options) or {}
options.choices = choices
elem = $ element
elem.immybox options
ko.utils.domNodeDisposal.addDisposeCallback element, ->
$(element).immybox 'destroy'
return
return
update: (element, valueAccessor, allBindings) ->
choices = ko.utils.unwrapObservable valueAccessor()
elem = $ element
elem.immybox 'setChoices', choices
if allBindings.has 'immybox_value'
allBindings.get('immybox_value').valueHasMutated?()
return
ko.bindingHandlers.immybox_value =
init: (element, valueAccessor) ->
valueObservable = valueAccessor()
elem = $ element
elem.on 'update', (e, newValue) ->
valueObservable newValue
return
return
update: (element, valueAccessor) ->
value = ko.utils.unwrapObservable valueAccessor()
elem = $ element
elem.immybox 'setValue', value
return