Как связать данные AJAX JSON с пользовательским типом структуры? - PullRequest
0 голосов
/ 18 ноября 2018

Почему не связываются данные ajax json для моего пользовательского типа структуры?

Мой env:

  • golang
  • эхо рамки

функция связывания go

/**
 *  function : Model Init
 */
func modelInit(c echo.Context) tetrisModel.Tetris {
    tetris := tetrisModel.DefaultInit()
    if err := c.Bind(tetris); err != nil {
        c.Logger().Error(err)
    }

    return *tetris
}

вызов моделиInit

func Control(c echo.Context) tetrisModel.Tetris {
    tetris := modelInit(c)
    fmt.Println("=======================")
    fmt.Println(c.FormValue("nowBlockPositionX"))
    fmt.Println(tetris.NowBlockPositionX) // do not printing, why?
    fmt.Println("=======================")

    // ... ... other code... ... 
}

результат:

fmt.Println(c.FormValue("nowBlockPositionX"))> работает

fmt.Println(tetris.NowBlockPositionX) не работает / не печатает, почему? (без привязки)

Надеюсь, этот код напечатает '3'

DefaultInit ()

func DefaultInit() *Tetris {
    tetris := new(Tetris)

    // some default data setting...

    return tetris
}



код модели тетрис

type Tetris struct {
    NowBlockPositionX  int                `form:"nowBlockPositionX" json:"nowBlockPositionX"`
    NowBlockPositionY  int                `form:"nowBlockPositionY" json:"nowBlockPositionY"`
    NowBlock           map[string]int     `form:"nowBlock" json:"nowBlock"`

    // other data exists...
}



AJAX JSON данных (тип POST)

{
    nowBlockPositionX: 3
    , nowBlockPositionY: 0
    , nowBlock: {L: 0}
    // other data exists...
}

Я понимаю, что если у типа структуры go есть литеральная строка (например: form:"nowBlock" json:"nowBlock"), то структура автоматически связывается ('функция связывания'). не так ли?

...