Documentation
¶
Overview ¶
formfield implements a material formfield component.
See: https://material.io/components/web/catalog/input-controls/form-fields/
Example ¶
package main
import (
"fmt"
"log"
"syscall/js"
"github.com/vecty-components/material/components/checkbox"
"github.com/vecty-components/material/components/formfield"
"github.com/vecty-components/material/components/internal/mdctest"
)
func main() {
// Create a new instance of a material formfield component and its
// childElement.
child := checkbox.New()
c := formfield.New()
// Set up a DOM HTMLElement suitable for a formfield.
js.Global().Get("document").Get("body").Set("innerHTML",
mdctest.HTML(c.Component().Type.MDCClassName))
rootElem := js.Global().Get("document").Get("body").Get("firstElementChild")
childElem := rootElem.Get("firstElementChild")
// Start the child element.
err := child.Start(childElem)
if err != nil {
log.Fatalf("Unable to start child component %s: %v\n",
child.Component().Type, err.Error())
}
// Start the parent formfield component, which associates it with an
// HTMLElement.
err = c.Start(rootElem)
if err != nil {
log.Fatalf("Unable to start component %s: %v\n",
c.Component().Type, err.Error())
}
printName(c)
printState(c)
err = c.Stop()
if err != nil {
log.Fatalf("Unable to stop component %s: %v\n",
c.Component().Type, err)
}
c.Input = child.Component().Value
err = c.Start(rootElem)
if err != nil {
log.Fatalf("Unable to start component %s: %v\n",
c.Component().Type, err.Error())
}
printState(c)
err = c.Stop()
if err != nil {
log.Fatalf("Unable to stop component %s: %v\n",
c.Component().Type, err)
}
}
func printName(c *formfield.FF) {
fmt.Printf("%s\n", c.Component().Type)
}
func printState(c *formfield.FF) {
fmt.Println()
mdcObj := c.Component()
fmt.Printf("Child Element: %v\n",
mdcObj.Get("input"))
}
func init() {
// We emulate a DOM here since tests run in NodeJS.
// Not needed when running in a browser.
err := mdctest.Init()
if err != nil {
log.Fatalf("Unable to setup test environment: %v", err)
}
}
Output: MDCFormField Child Element: [object Object] Child Element: [object Object]
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type FF ¶
type FF struct {
Input interface{} `js:"input"`
// contains filtered or unexported fields
}
FF is a material formfield component.
func (*FF) Start ¶
Start initializes the component with an existing HTMLElement, rootElem. Start should only be used on a newly created component, or after calling Stop.
Click to show internal directories.
Click to hide internal directories.