func init() { vue.Component("js-clock", js.M{ "template": `<canvas></canvas>`, "replace": true, "ready": js.MakeFunc(func(this *js.Object, arg []*js.Object) interface{} { draw(canvas.NewElement(this.Get("$el"))) return 0 }), }) }
func main() { vue.Component("my-cpnt", js.M{ "template": "<h1>This is my testing component!</h1>" + "<content>This will only be displayed if no content is inserted</content>", "created": js.MakeFunc(func(this *js.Object, arguments []*js.Object) interface{} { println("'An instance of MyComponent has been created!'") this.Call("$dispatch", "msg", "hello") return 0 }), }) data := newData() datam := structs.New(data).Tag("js").Map() println("data:", data) println("datam:", datam) vm := vue.New(js.M{ "el": "#demo", // "data": js.M{ // "title": "todos", // "todos": []js.M{ // js.M{ // "done": true, // "content": "Learn JavaScript", // }, // js.M{ // "done": false, // "content": "Learn Vue.js", // }, // }, // }, "data": data, "methods": js.M{ "change": func() { // data.Title = "Funcked" }, }, "directives": js.M{ "showdone": js.MakeFunc(func(this *js.Object, arguments []*js.Object) interface{} { println("this.expression:", this.Get("expression")) return 0 }), }, "filters": js.M{ "testf": js.MakeFunc(func(this *js.Object, arguments []*js.Object) interface{} { println("testf:", this.Get("title")) return 0 }), }, "created": js.MakeFunc(func(this *js.Object, arguments []*js.Object) interface{} { this.Call("$on", "msg", func(msg interface{}) { println("parent got:", msg.(string)) }) return 0 }), }) // v := vue.New(vue.VueOption{ // El: "#demo", // Data: js.M{ // "title": "todos", // "todos": []js.M{ // js.M{ // "done": true, // "content": "Learn JavaScript", // }, // js.M{ // "done": false, // "content": "Learn Vue.js", // }, // }, // }, // }) println(vm.Object) println(vm.Options) vm.Watch("todos", func(newVal, oldVal *js.Object) { println(newVal.Index(0).Get("done")) }, true) // vm.On("msg", func(msg interface{}) { // println("parent got:", msg.(string)) // }) }