Как я могу установить значение вложенного свойства в Clojurescript?

Я хочу установить свойство element.style.height из clojurescript, но этот код, к сожалению, не работает:

(set! (-> (sel1 tr :.ragslide) .-style .-height) (content-height))

(sel1 выбирает элемент DOM, это макрос из библиотеки Dommy)

Со следующей ошибкой:

clojure.lang.ExceptionInfo: 
Assert failed: Can't set! local var or non-mutable field
(or (nil? local) (and (:field local) (or (:mutable local) (:unsynchronized-mutable local) (:volatile-mutable local)))) at line 79  {:tag :cljs/analysis-error, :file nil, :line 79, :column 7}

Как я могу установить это свойство?


person Daniel Ziltener    schedule 02.08.2013    source источник


Ответы (2)


Хорошо, вау, это кажется действительно странным. Это не сработало, потому что этот код находился внутри блока core.async, который все испортил...

person Daniel Ziltener    schedule 02.08.2013
comment
С тех пор это было исправлено в мастере core.async. - person dnolen; 13.08.2013

Я думаю, что (-> (sel1 tr :.ragslide) .-style .-height) у вас есть значение высоты, вы не можете установить его с новым значением.

Если вы хотите добавить в стиль элемент высоты, попробуйте
функцию set-style!.

person Mavlarn    schedule 20.02.2014