玉变量渲染

时间:2014-03-22 16:30:47

标签: javascript node.js twitter-bootstrap pug

民间,   我如何访问我在脚本中设置的变量。 ?

#someModal.modal.fade.large
 .modal-dialog(style="width:70%")
    .modal-content
        .modal-header
            button.close(type='button', data-dismiss='modal', aria-hidden='true') ×
            h2.modal-title #{someVariable}
        .modal-body
            h3
               ...

script.
    | var someVariable = #{someVariable};

script.
    $('body').on('show.bs.modal', '.modal', function () {
        var someVariable = 'test';
    });

2 个答案:

答案 0 :(得分:1)

我通常使用的解决方法是将变量附加到窗口:

#someModal.modal.fade.large
 .modal-dialog(style="width:70%")
    .modal-content
        .modal-header
            button.close(type='button', data-dismiss='modal', aria-hidden='true') ×
            h2.modal-title #{someVariable}
        .modal-body
            h3
               ...
script
  | var someVariable = #{someVariable};
script.
    $('body').on('show.bs.modal', '.modal', function () {
        var someVariable = 'test';
    });

请注意,如果变量是JSON.stringify(或Object),您需要Array

答案 1 :(得分:1)

在您的页面加载之前,您的脚本将不会开始运行,因此jade永远无法访问客户端上设置的变量。您应该使用jQuery来修改HTML元素。

script.
    var $modal = $('#someModal')
      , $title = $modal.find('.modal-title');
    $modal.on('show.bs.modal', '.modal', function () {
        var someVariable = 'test';
        $title.text(someVariable);
    });

    $modal.modal();
相关问题