najidev / javascript-data-bundle
以优雅的方式将 \NajiDev\Common\JavaScriptData\Container 集成到您的项目中
1.0.2
2013-03-18 11:39 UTC
Requires
- php: >=5.3.0
- najidev/common: >=1.0.1
- symfony/config: >=2.0,<2.3-dev
- symfony/dependency-injection: >=2.0,<2.3-dev
- symfony/http-kernel: >=2.0,<2.3-dev
- symfony/templating: >=2.0,<2.3-dev
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>