【问题标题】:Injecting Files To Template From Controller从控制器注入文件到模板
【发布时间】:2013-05-17 03:57:34
【问题描述】:

我试图弄清楚如何使用 Anthony Male 的资产库,该库也用于 PyroCMS,仅通过控制器将某些资产加载到我的模板。

我有一个加载特定文件的模板,并且取决于控制器,例如登录控制器,我需要它在页脚底部注入 login.js 文件,该文件将在模板末尾加载.

有什么想法吗?

【问题讨论】:

  • 是的,我有我错过了什么吗?
  • 在上述链接顶部附近,基本用法下:使用Asset::js('myfile.js');设置控制器中的文件。然后使用echo Asset::render_js(); 在视图中回显它们
  • 你应该把这个作为答案,这样我就可以投票并勾选它。
  • 将其添加为答案。

标签: php codeigniter assets


【解决方案1】:

引用 Anthony Male 资产库的官方文档,可以在这里找到:http://docs.pyrocms.com/2.1/manual/developers/tools/assets

可以使用以下命令在控制器中添加 Javascript 文件,其中 myfile.js 是您要包含的 javascript 文件,位于 assets/js/myfile.js。

// Will add assets/js/myfile
Asset::js('myfile.js');

// Will add assets/admin/js/myfile.js
Asset::js('admin::myfile.js');


默认情况下,Asset 会缩小这两个文件并将它们组合成一个文件(写入 assets/cache/.js)。要将此文件包含在您的页面中,请在您的视图中使用以下内容:

echo Asset::render_js();

【讨论】:

【解决方案2】:

您要求页脚底部,但我的回答对您有用。

我正在使用资产库,但不是你的,只是类似的,这就是我处理它的方式;

在我的控制器中;

/**
 * Global header variable for header view
 *
 * @var array
 * @access protected
 */
protected $header = array();

public function __construct() {
    // it returns like : <script type="text/javascript" src="http://domain.com/assets/js/jquery-min.js"></script>
    $this->header["jses"][] = js("jquery-min.js");
    $this->header["jses"][] = js("jquery.autogrow-textarea.js");
}

public function index() {
    // some code here
    $this->load->view("header",$this->header);
    // other views
}

在我的标题视图中;

<?php foreach ( $jses as $js ) echo $js; ?>

【讨论】:

    猜你喜欢
    • 2015-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多