najidev/javascript-data-bundle

以优雅的方式将 \NajiDev\Common\JavaScriptData\Container 集成到您的项目中

1.0.2 2013-03-18 11:39 UTC

This package is not auto-updated.

Last update: 2024-09-14 13:03:12 UTC


README

此包以优雅的方式将 \NajiDev\Common\JavaScriptData\Container 集成到您的项目中,以建立从 PHP 变量到 JavaScript 的桥梁。请参阅 najidev/common 的文档。

安装

将包添加到 composer.json

由于 composer 是 Symfony 处理库和包的标准方式,我将只展示使用 composer 的安装方法。在您的 composer.json 中添加以下内容

"require" : {
	"najidev/javascript-data-bundle" : "@dev"
}

您应考虑使用某个发布版本而不是 "@dev"。

在您的 Kernel 中加载此包

$bundles = array(
	// your current bundles

	new \NajiDev\JavaScriptDataBundle\NajiDevJavaScriptDataBundle(),
);

使用方法

该包在您的 DIC 中创建服务

najidev.common.javascriptdata.container

,这是一个

\NajiDev\Common\JavaScriptData\Container

您只需在控制器中通过 DIC 获取它并使用它即可

$this->get('najidev.common.javascriptdata.container')->set('my.key', 'value');

与数据容器交互的另一种方式是模板助手

$view['javascript_data']->set('my.key', 'value');

在显示数据时,该助手有另一个方法

<?php echo $view['javascript_data']->render(); ?>

只需在布局中使用这一简单行,您的数据就可以在 helper.js 中被任何地方获取。确保在 body 完全渲染后使用 helper.js。Jquery 的 ready 事件非常适合这个目的

<script>
	$(document).ready(function()
	{
		var value = jsd.get('my.key', 'a default value, which will be returned if such key does not exist');

		console.log(value);
	});
</script>