示例#1
0
文件: js-clock.go 项目: theclapp/js
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
		}),
	})
}
示例#2
0
文件: app.go 项目: theclapp/js
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))
	// })
}