2

考虑一下,我在Express的渲染页面中按如下方式向客户端发送 JSON (使用hbs作为视图引擎):

res.render('MyPage.html', { layout: false, PageTitle: 'Project Name', JSON_Data: {field1:'value',field2:'value2'}});

我可以使用 访问和设置 html 页面的标题{{PageTitle}},以下是代码。

  <title>{{PageTitle}}</title>

现在我想显示JSON_data在警报弹出窗口中。

我尝试了以下方式,但是Uncaught SyntaxError: Unexpected token {在 chrome 中调试时显示var jsonobj = [object Object]

    function fbOnBodyLoad() {
        var jsonobj = {{JSON_data}};
        alert(jsonobj);
    }

任何机构都可以就如何访问JSON_data和显示警报提供一些想法

提前谢谢

4

3 回答 3

1

要访问 json 对象的内部元素,请尝试这样

var jsonobj = "{{JSON_data.field1}}";

可能这可能会解决问题。

参考

Handlebars.js 解析对象而不是 [Object object]

于 2013-02-14T12:56:25.157 回答
0

您始终可以注册一个 Handlebars 助手以将对象格式化为字符串格式(例如通过使用 JSON.stringify),然后在您的视图中使用该助手。http://handlebarsjs.com/block_helpers.html

于 2013-02-14T17:59:48.030 回答
0

对我来说,它通过在服务器中执行:

res.render('pages/register', {
                title: 'Register Form',
                messages: req.flash('error'),
                countries:JSON.stringify(countries)
        });

然后我使用这个国家变量来分配角度控制器,如下所示:

angular.module('languagesApp', []).controller('DemoController', function($scope) {

    $scope.algo = {{-countries}};
...
于 2015-09-11T15:50:01.657 回答