In your repl, can you verify that (.getElementById js/document "canvas")
actually returns a <canvas>? Under the hood, init is trying to grab a
context off that canvas, which doesn't seem to exist.

If you don't have a canvas there, try adding a <canvas
id="canvas"></canvas> to your page.


On Fri, Jan 17, 2014 at 7:31 PM, boz jennings <[email protected]> wrote:

> Read
> https://github.com/clojure/clojurescript/wiki/The-REPL-and-Evaluation-Environments
>
> Got the monet dependencies in the repl but if I try to init the canvas in
> the repl I get an error that doesn't happen in the page when it runs. Looks
> like it tries to resolve something to pass in as the first arg to
> monet.canvas.init.call  but it ends up null in the repl.
>
> The code is....
>
> (ns cljs-start-001.core
>   (:require [monet.canvas :as canvas]))
>
> (def mc (canvas/init (.getElementById js/document "canvas")))
>
> (canvas/add-entity mc :background
>                    (canvas/entity {:x 0 :y 0 :w 600 :h 600}
>                                   nil ;;update function
>                                   (fn [ctx box]
>                                     (-> ctx
>                                         (canvas/fill-style "#191d21")
>
> When I load it in the repl with load-file I get this....
>
> "Error evaluating:" (def mc (canvas/init (.getElementById js/document
> "canvas"))) :as "cljs_start_001.core.mc =
> monet.canvas.init.call(null,document.getElementById(\"canvas\"));\n"
> #<TypeError: Cannot call method 'getContext' of null>
> TypeError: Cannot call method 'getContext' of null
>     at get_context (eval at <anonymous> (
> http://localhost:53913/3201/repl/start:1463:318), <anonymous>:6:77)
>     at monet_canvas (eval at <anonymous> (
> http://localhost:53913/3201/repl/start:1463:318), <anonymous>:363:41)
>     at monet.canvas.init.init__delegate (eval at <anonymous> (
> http://localhost:53913/3201/repl/start:1463:318), <anonymous>:370:168)
>     at monet.canvas.init.init (eval at <anonymous> (
> http://localhost:53913/3201/repl/start:1463:318), <anonymous>:376:23)
>     at eval (eval at <anonymous> (
> http://localhost:53913/3201/repl/start:1463:318), <anonymous>:1:44)
>     at http://localhost:53913/3201/repl/start:1463:313
>     ...
>
> On Friday, January 17, 2014 9:14:32 AM UTC-8, boz jennings wrote:
> > I'll have to figure out how to get the monet dependencies in the
> browser-repl, I guess.
> >
> > Need to go read some docs. Any recommendations?
> >
> >
> >
> > On Friday, January 17, 2014 9:12:18 AM UTC-8, boz jennings wrote:
> >
> > > Silly me.
> >
> > >
> >
> > > I was using the browse-repl URL instead of just going to
> localhost:3000 ... localhost:3000 does show the canvas!
> >
> > >
> >
> > >
> >
> > >
> >
> > > Play time! ... Thanks Nikita!
> >
> > >
> >
> > > ,boz
> >
> > >
> >
> > >
> >
> > >
> >
> > > On Friday, January 17, 2014 8:06:34 AM UTC-8, Nikita Beloglazov wrote:
> >
> > >
> >
> > > > Did you require monet.canvas like this: (require '[monet.canvas :as
> canvas]) ?
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > Anyway you can try use full namespace:
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > (def mc (monet.canvas/init (.getElementById js/document "canvas")))
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > On Fri, Jan 17, 2014 at 3:54 PM, boz jennings <[email protected]> wrote:
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > getElementById without the 0 compiles fine (thanks!) and I get no
> errors in the repl console or the JS console ... yet the colored rectangle
> doesn't show up.  hmmm
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > Seems like the canvas element isn't in the repl-ized window or
> something...
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > cljs.user=> (def mc (canvas/init (.getElementById js/document
> "canvas")))
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > "Error evaluating:" (def mc (canvas/init (.getElementById
> js/document "canvas"))) :as "cljs.user.mc =
> canvas.init.call(null,document.getElementById(\"canvas\"));\n"
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > #<ReferenceError: canvas is not defined>
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > ReferenceError: canvas is not defined
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >     at eval (eval at <anonymous> (
> http://localhost:63402/560/repl/start:1463:318), <anonymous>:1:80)
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >     at eval (eval at <anonymous> (
> http://localhost:63402/560/repl/start:1463:318), <anonymous>:5:3)
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >     at http://localhost:63402/560/repl/start:1463:313
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >     at clojure.browser.repl.evaluate_javascript (
> http://localhost:63402/560/repl/start:1464:338)
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >     at Object.callback (
> http://localhost:63402/560/repl/start:1472:82)
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >     at goog.messaging.AbstractChannel.deliver (
> http://localhost:63402/560/repl/start:1340:393)
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >     at goog.net.xpc.CrossPageChannel.xpcDeliver (
> http://localhost:63402/560/repl/start:1433:350)
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >     at
> Function.goog.net.xpc.NativeMessagingTransport.messageReceived_ (
> http://localhost:63402/560/repl/start:1392:389)
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >     at goog.events.Listener.handleEvent (
> http://localhost:63402/560/repl/start:1072:102)
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >     at Object.goog.events.fireListener (
> http://localhost:63402/560/repl/start:1087:448)
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > nil
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > cljs.user=>
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > Maybe I need to start with something simpler than cljs-start. I
> don't understand all what it's doing yet.
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > ,boz
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > On Friday, January 17, 2014 7:07:30 AM UTC-8, Nikita Beloglazov
> wrote:
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > I'd say feel free to use getElementById. But you don't need to
> pass 0 in this case. In former example (.get ... 0) was used to get actual
> dom element from array returned by JQuery. In your case you get dom element
> in the first place and don't need to get 0-st element.
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > On Fri, Jan 17, 2014 at 2:59 PM, boz jennings <[email protected]>
> wrote:
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > Thanks Nikita!
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > That helps. Now I read the monet code again and see mc all over
> the place :)
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > Wasn't able to get it working with the cljs-start yet. Haven't had
> much time to do it. Hopefully do more today.
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > Looks like the monet docs assume jayq is used too (that $). Does
> monet have a jayq dependency? Or is it OK to use this?
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > (def mc (canvas/init (.getElementById js/document "canvas") 0))
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > ,boz
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > On Thursday, January 16, 2014 5:42:53 AM UTC-8, Nikita Beloglazov
> wrote:
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > Hi Boz
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > I believe that mc stands for 'monet-canvas' which is created by
> 'init' function and example from README is incorrect. You need to get
> monet-canvas first from 'init' function and then add entity to it. Try this:
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > (def mc (canvas/init (.get ($ :#canvas) 0)))
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > (canvas/add-entity mc :background
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > >                    (canvas/entity {:x 0 :y 0 :w 600 :h 600}
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > >                                   nil ;;update function
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > >                                   (fn [ctx box]
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > >                                     (-> ctx
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > >                                         (canvas/fill-style
> "#191d21")
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > >                                         (canvas/rect box)))))
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > Nikita
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > On Thursday, January 16, 2014 2:53:33 AM UTC, boz jennings wrote:
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > > Hi,
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > > Can someone give me pointers on using monet?
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > > I'm trying to get to know Clojurescript. Just cloned
> cljs-start and put in dependencies and changes that I hope will work for
> monet https://github.com/rm-hull/monet
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > > But I get this when compiling
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > > WARNING: Wrong number of args (2) passed to
> monet.canvas/add-entity at line 17
> /Users/boz/dev/clojure/cljs-start-001/src/cljs/cljs_start_001/core.cljs
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > > Here's the code in cljs_start_001/core.cljs. It's basically
> just a copy from the monet README.md...
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > > (ns cljs-start-001.core
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > >   (:require [monet.canvas :as canvas]))
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > > (canvas/add-entity :background
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > >                    (canvas/entity {:x 0 :y 0 :w 600 :h 600}
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > >                                   nil ;;update function
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > >                                   (fn [ctx box]
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > >                                     (-> ctx
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > >                                         (canvas/fill-style
> "#191d21")
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > >                                         (canvas/rect box)))))
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > > (canvas/init (.get ($ :#canvas) 0))
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > > monet's add-entity looks like this....
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > > (defn add-entity [mc k ent]
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > >   (aset (:entities mc) k ent))
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > > But I have no idea what mc k and ent are supposed to be.
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > > Thanks!
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > > > ,
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > --
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > Note that posts from new members are moderated - please be patient
> with your first post.
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > ---
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > You received this message because you are subscribed to a topic in
> the Google Groups "ClojureScript" group.
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/clojurescript/fnf33iMsFdY/unsubscribe.
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > To unsubscribe from this group and all its topics, send an email
> to [email protected].
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > To post to this group, send email to [email protected].
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > Visit this group at http://groups.google.com/group/clojurescript.
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > --
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > Note that posts from new members are moderated - please be patient
> with your first post.
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > ---
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > You received this message because you are subscribed to a topic in
> the Google Groups "ClojureScript" group.
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/clojurescript/fnf33iMsFdY/unsubscribe.
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > To unsubscribe from this group and all its topics, send an email to
> [email protected].
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > To post to this group, send email to [email protected].
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > Visit this group at http://groups.google.com/group/clojurescript.
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/clojurescript.

Reply via email to