javascript - 从 Angular js 中的 Go 模板获取数据

标签 javascript angularjs go beego

我是 Angular Js 的新手。我设法在 Angular js 中从 golang 接收数据。但是当在警告框中使用时,它会给出输出 [object Object] 。我尝试将golang的分隔符从{{ }}改成<<< >>>,但问题并没有解决。

Go代码:(我用的是beego)

func (receiver *AdsController) LoadNewCampaignPage()  {
    view := viewmodels.NewCampaignPageViewModel{}
    view.Title = "New Campaign"
    receiver.Data["vm"] = view
    receiver.Layout = "layouts/ads_header.html"
    receiver.TplName = "templates/ads_add_campaign.html"
}

结构viewmodels.NewCampaignPageViewModel{}

type NewCampaignPageViewModel struct {
    Title           string
    ProfileName     string
    ProfilePicture  string
    UnUsedBoxes     []models.Box
    ErrorMessage    string
}

HTML

<div ng-controller="AddBoxForAdsCtrl">
    <button class="_button _button-3" ng-click="showHiddenForm()">Add Box</button>
</div>

JS

var addBoxForAds = angular.module('addBoxForAds', []);
addBoxForAds.controller('AddBoxForAdsCtrl', function ($scope, $http){
     var title = $http.get('<<<.vm.Title>>>'); //Data from GO; delimiters are changed.
     alert(title);
});

我在这里犯了什么错误?我怎样才能从angularjs中的golang获取数据?如何使用结构元素UnUsedBoxes(结构数组)?

最佳答案

$http.get 向服务器发出 get 请求以获取 json 数据,您只是将值直接传递给 js 代码。如果我猜对了,您需要将代码更改为

var title = '<<<.vm.Title>>>';

或者,您可以像在这个虚拟示例中那样在 Go 中创建函数(在 beego 框架上可能看起来不同):

import (
    "net/http"
    "encoding/json"
)

func main() {
    http.HandleFunc("/title", title_handler)
    http.ListenAndServe(":8000", nil)
}

func title_handler(w http.ResponseWriter, r *http.Request) {
    title := map[string]string{"title": "My Title"}
    // this should work too:
    // title := struct {title string} {"My Title"}

    json_title, _ := json.Marshal(title)
    w.Header().Set("Content-Type", "application/json")
    w.Write(json_title)
}

在 js 中:

var title = $http.get('/title');

关于javascript - 从 Angular js 中的 Go 模板获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38390029/

相关文章:

javascript - 添加 Angular.js Modal 会出现错误 : [$injector:unpr]

angularjs - 用户界面网格 : directive as cellTemplate

javascript - Angularjs 中的 ElasticSearch 到 NVD3

sqlite - 无法在Windows上通过TDM-GCC使用cgo编译Go应用程序

amazon-web-services - 如何使用 golang 检查 s3 对象大小

javascript - Ajax:如何使用 FormData 和 jQuery 发送 'empty' 文件并在 $_FILES 中获取它

javascript - 需要帮助让 Prop 使用 react 工作

terminal - 你如何获得 Go 中的终端大小?

javascript - 浏览器/HTML 如何决定光标焦点应该在哪里?

javascript - AngularJS 取消绑定(bind)等效变量