interop - Invoking custom javascript functions in clojurescript -


my project.clj follows :

(defproject cljsbuild-example-simple "0.3.2"   :description "a simple example of how use lein-cljsbuild"   :source-paths ["src-clj"]   :dependencies [[org.clojure/clojure "1.5.1"]                  [compojure "1.0.4"]                  [hiccup "1.0.0"]]   :plugins [[lein-cljsbuild "0.3.2"]             [lein-ring "0.7.0"]]   :cljsbuild {     :builds [{:source-paths ["src-cljs"]               :compiler {:output-to "resources/public/js/main.js"                          :libs ["src-js/jsfuncs.js"]                          :optimizations :whitespace                          :pretty-print true}}]}   :ring {:handler example.routes/app}) 

jsfuncs.js contains following code :

function calculate(a,b,c) {     d = (a+b) * c;     return d; } 

how invoke js function within clojurescript files? tried invoke function via :

(js/calculate 4 5 6) 

but did not work. thanks.

the main problem google closure compiler needs read javascript , able understand it. normal js code lacks hints (jsdoc tags) , namespaces necessary compiler.

the jsdoc tags kind of optional (they compiler catch errors , optimize code better) namespace parts need added. be:

goog.provide('jsfuncs');  /**  * @param {number}  * @param {number} b  * @param {number} c  * @return {number}  */ jsfuncs.calculate = function(a, b, c) {   d = (a+b) * c;   return d; }; 

the other method give closure compiler extern file describes js code. i'm not 100% how there pretty documentation google. there large extern files on project's homepage cover jquery, angular, , other common libraries.

after doing 1 of these methods can call calculate this:

(ns some.namespace    (:require [jsfuncs :as jsf]))  (console/log (jsf/calculate 1 2 3)) 

Comments

Popular posts from this blog

ruby on rails - Is it the correct way to implement belongs_to relation with factory girl? -

geolocation - Windows Phone 8 - Keeping background location tracking active beyond four hours -

Uncaught TypeError: Cannot read property 'parentNode' of null javascript -