как связать JavaScript с $ scripts_for_layout в то время как в элементе - PullRequest
0 голосов
/ 05 декабря 2009

В настоящее время я работаю над приложением, которое будет реализовывать настраиваемые пользователем виджеты на панели пользователя каждого пользователя. Пользователь может добавлять и удалять виджеты по своему усмотрению. Каждый виджет содержится в своем собственном элементе, а некоторые содержат файлы JavaScript, которые необходимо загружать по отдельности.

В настоящее время у меня возникает проблема: если я попытаюсь связать JavaScript в $ scripts_for_layout, используя следующий код в элементе, ничего не произойдет.

<?php $javascript->link('widgets/blog',false); ?>

Немного осмотревшись, если обнаружил тикет в трекере ошибок CakePHP, который объясняет, почему, и комментатор даже предложил обходной путь, который может обойти это:

<?php echo join("\n\t", $this->__scripts); ?>

Я пытался использовать это, но, похоже, это не работает. Кто-нибудь знает какие-либо другие способы решения этой проблемы или даже есть предложения о том, как сделать это лучше?

Ответы [ 4 ]

0 голосов
/ 06 января 2010

Проведя исследование, я обнаружил, что в настоящее время это невозможно из-за того, как построена программа CakePHP.

0 голосов
/ 07 декабря 2009

Я не думаю, что вы можете использовать $ javascript-> link из элемента, когда этот элемент включен из файла макета. Кто-нибудь поправит меня, если я ошибаюсь.

0 голосов
/ 08 декабря 2009

Это должно сделать работу:

<?php echo $javascript->link('widgets/blog',false); ?>

Может быть, вы просто забыли эхо?

0 голосов
/ 05 декабря 2009

Я не совсем уверен, почему $javascript->link(…, false) не должен работать в элементе, но вы можете попробовать это:

$this->addScript($javascript->link('path/to/script'));

Это должно работать в представлении. В макете, как отмечено в сообщаемой вами ошибке, это не сработает, поскольку сценарии заголовка уже будут выведены к моменту рендеринга элемента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...