【问题标题】:How do I use a drupal views field value as Javascript Variable如何将 drupal 视图字段值用作 Javascript 变量
【发布时间】:2020-01-29 15:45:51
【问题描述】:

我在 Drupal 7 中设置了一个输出字段值的视图,但我不知道如何传递该字段值以用作 Javascript 中的变量。

我知道对于节点我可以做的很简单:

function MYMODULE_node_view($node, $view_mode, $langcode) {
  if ($view_mode == 'full') {
    $setting = array('MYMODULE' => array('currentNid' => $node->nid));
    $node->content['#attached']['js'][] = array(
      'data' => $setting,
      'type' => 'setting',
    );
  }
} 

然后在 Javascript 中:var currentNid = Drupal.settings.MYMODULE.currentNid;

我真的很想知道如何使用视图字段来做到这一点。

【问题讨论】:

    标签: javascript php drupal drupal-7


    【解决方案1】:

    我发布此解决方案以防将来有人需要它。

    模块.module

    function MODULE_preprocess_views_view_fields(&$vars) {
      if ($vars['view']->name == 'VIEW_NAME' && $vars['view']->current_display == 
    'DISPLAY_NAME') {
        //dpm($vars); use the devel module to expose available variable
      $myVar = $vars['fields']['uid']->content;
      drupal_add_js(array('MODULE' => array('mykey' => $myVar)), array('type' => 'setting'));
      drupal_add_js(drupal_get_path('module', 'MODULE') . '/MODULE.js');
      }
    }
    

    模块.JS

    (function ($) {
    Drupal.behaviors.MODULE = {
    attach: function(context,settings) {
    
    $(document).ready(function() {
        alert(settings.MODULE.mykey);
    });
    }}})(jQuery);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多