Вызов представления в представлении не работает должным образом - PullRequest
0 голосов
/ 03 января 2012
<script src="<?php echo site_url('bootstrapper/jqTimer'); ?>"></script>

Итак, я попытался вызвать контроллер ниже, используя скрипт выше, но я получаю ошибку, не найденную.Есть идеи, почему этот метод не работает?

function jqTimer() {
    $this->load->view("jquery.timers.js");
}

Ответы [ 3 ]

2 голосов
/ 03 января 2012

При загрузке javascript с тегом <script> атрибут src ожидает имя файла для файла js. Вы указываете путь к методу контроллера в вашей установке CI.

Что вам нужно сделать, это поместить файл jquery.timers.js в папку public_html и получить к нему доступ:

// assuming you have the script in a [javascripts] folder inside [public_html]
<script src="<?php echo site_url('javascripts/jquery.timers.js'); ?>"></script>

Если вы предпочитаете загружать свой javascript с помощью представлений, вам нужно сделать это вместо этого:

<script><?php echo $this->load->view("jquery.timers.js", "", TRUE); ?></script>

Это отобразит содержимое файла представления между тегами <script> для встроенного JavaScript. ( передача TRUE в качестве третьего параметра возвращает содержимое файла, поэтому вы можете вывести его )

0 голосов
/ 03 января 2012

Вы хотите повторить ссылку на JS, а не эхо самой JS. Вы можете создать MY_Controller в основной папке, которая расширяет CI_Controller, в которой:

function jqTimer() {
  return site_url("jquery.timers.js");
}

Затем в любом другом контроллере (который расширяет MY_controller) вы должны перейти:

$data['js_timer'] = $this->jqTimer();
/* proceed to load main view with $data */

Вид:

<script src="<?php echo $js_timer; ?>"></script>

Это СУХОЙ, потому что, если вы решите использовать другой плагин таймера js, вам нужно заменить его только в одном месте: класс MY_Controller (в отличие от каждого файла представления).

Тем не менее, немного странный способ делать вещи ...

0 голосов
/ 03 января 2012

Я не вижу никакой причины, почему вы должны создать функцию в контроллере просто для загрузки файла javascript.Функция base_url() уже может делать то, что вы хотите.

<script src="<?php echo base_url('path/to/jquery.timer.js'); ?>"></script>

Ознакомьтесь с документацией для URL-помощника

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