我在drupal 8.2
中的模块内创建一个块/**
* @Block(
* id = "news-slider",
* admin_label = @Translation("News slider"),
* )
*/
class NewsSliderBlock extends BlockBase implements BlockPluginInterface {
public function build() {
$config = $this->getConfiguration();
$param1 = $config['param1'];
}
public function blockForm($form, FormStateInterface $form_state) {
$form = parent::blockForm($form, $form_state);
$config = $this->getConfiguration();
...
return $form;
}
public function blockSubmit($form, FormStateInterface $form_state) {
$this->setConfigurationValue('param1', $form_state->getValue('param1'));
}
在我的模块文件中
function news_slider_page_attachments_alter(&$build) {
$settings = \Drupal::config('news-slider');
$param1= $settings->get('param1');
$build['#attached']['drupalSettings']['news_slider']['asset1']['param1'] = $param1;
}
在我的模块库yml
中asset1:
version: 1.x
js:
js/news_slider.js: {}
dependencies:
- core/drupalSettings
在浏览器js控制台中尝试
drupalSettings.news_slider.asset1.param1
每次都是null,我真的不明白我错在哪里。
可能是$ settings = \ Drupal :: config('news-slider');在模块钩子?
asset1附加在模板模块文件news-slider.html.twig
中{{ attach_library('news_slider/asset1') }}