Направляющие, jQuery, .js.erb файлы, JS, не выполняемый браузером

Я пытаюсь использовать jQuery, и все было большим, до сих пор, когда я пытаюсь представить частичное и добавить его отделению. Вот то, как у меня есть настроенный:

У меня есть действие, которое отвечает на js:

def index
  @objects = Object.find(:all)

  respond_to do |format|
    format.js
  end
end

И шаблон, названный index.js.erb с некоторым JavaScript в нем:

alert("hello world");

Firebug возвращает ответ "текста/JavaScript", содержащий:

alert("hello world");

Но аварийное окно не появляется, и при этом любой другой JavaScript не работает. Я проверил http://railscasts.com/episodes/136-jquery И более или менее следую вперед. Я попробовал несколько других вещей, как использование .rjs вместо .erb и помещения этого в моем шаблоне:

page.alert("hello world"); 

но я получаю тот же точный результат, и браузер никогда не выполняет JS.

Кто-либо знает, почему JavaScript не выполняется?

Я выполняю направляющие 2.3.4.

10
задан Simone Carletti 7 January 2010 в 10:02
поделиться

1 ответ

Вы должны вызвать его с вашего вида, иначе он никогда не будет выполнен.

пример контроллера:

def index
  @objects = Object.find(:all)

  respond_to do |format|
    format.js{
      render :text => "alert('hello')"
    }
  end
end

и index.html.erb с:

<script type="text/javascript">
  $(function(){
    $.ajax({ url: '/controller', type: 'get', dataType:'script' });
  });
</script>

заменяют '/controller' на действительный url, который выполняет индексный экшен этого контроллера, по умолчанию для PostsController это будет '/posts' и так далее....

если вам нравится rjs, вы удаляете {} и вычисляете его в контроллере и создаёте index.js.erb или index.rjs с:

page.alert("hello world")

или:

page << "hello world"
12
ответ дан 4 December 2019 в 00:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: