6

我在 Controller init() 中有一个常见样式列表:

$this->view->headLink()->setStylesheet('/style/style.css');
$this->view->headLink()->appendStylesheet('/style/style2.css');
$this->view->headLink()->appendStylesheet('/style/style3.css');
$this->view->headLink()->appendStylesheet('/style/forms.css');
$this->view->headLink()->appendStylesheet('/style/ie_patches.css','all','lte IE 7');

我需要的是稍后在此控制器的一个操作中从堆栈中删除其中一个样式表的方法。

感谢您的帮助,请原谅我的英语

4

3 回答 3

7

或者你可以使用

$this->view->headLink()->offsetUnset($offsetToBeRemoved); // offsetToBeRemoved should be integer

要找出 offsetToBeRemoved,您可以获取迭代器 ( $this->view->headLink()->getIterator()) 或容器$this->view->headLink()->getContainer()),循环遍历它并获取您感兴趣的密钥。

于 2011-06-21T10:53:18.780 回答
4

例如,如果您想删除“/style/style2.css”,您可以在一个操作中执行如下操作:

    $headLinkContainer = $this->view->headLink()->getContainer();
    unset($headLinkContainer[1]);

这是因为容器(即 的实例Zend_View_Helper_Placeholder_Container)扩展了 ArrayObject。这意味着您可以像使用数组一样操作 headLink 元素。

希望这可以帮助。

于 2011-06-21T10:51:22.367 回答
3

您还可以像这样设置空容器:

$this->view->headLink()->setContainer(
    new Zend_View_Helper_Placeholder_Container()
);
于 2012-02-20T01:43:43.900 回答