2013-05-21 16 views
5

Czy można odpowiedzieć na żądanie HTML za pomocą javascript? Rozumiem przez to, że nie chcę odświeżania strony i wykonania kodu javascript. Zastanawiam się, czy to możliwe, zmieniając tylko stronę serwera?Odpowiadaj z javascript na żądanie HTML?

W moim działaniu, mam coś wybrany odpowiedzieć js i html tak:

respond_to do |format| 
    format.js 
    format.html 
end 

I mam .js.erb plik, który, oczywiście, powinno zostać wydane, gdy przeglądarka żąda JavaScript.

Czy to można zrobić? W jaki sposób?

+0

wygląda dobrze mi Próbowałaś nazywając tę ​​trasę ze w js? –

+0

Co masz na myśli? Potrzebuję, aby żądanie prosiło o 'html', a odpowiedź brzmi' js'. – fotanus

+0

popraw mnie, jeśli się mylę. Chcesz zrobić http://someurl.com/someroute i przywrócić js vs wykonanie http://someurl.com/someroute.js? –

Odpowiedz

3

Nie można tego zrobić, zmieniając tylko kod po stronie serwera. Jeśli chcesz, aby javascript był wykonywany na podstawie odpowiedzi serwera, formularz musi zostać przesłany za pośrednictwem javascript. Dzieje się tak, ponieważ javascript oceni odpowiedź serwera i uruchomi kod.

ten może być nieco trywialnie dodany w Rails:

<%= form_for @user, remote: true %> 

Gdy jest złożony, to można odesłać JavaScript. Na przykład, aby ostrzec, że użytkownik dodano:

/app/views/users/create.js.erb

alert("user <%= j @user.email %> was added"); 
+0

Dzięki za odpowiedź, wierzę również, że nie jest to możliwe. Jeśli nikt nie wymyśli czegoś, przyjmuję twoją odpowiedź. Rozumiem, że to łatwe, ale migruję z 'rjs' (pamiętam rjs?) Do' ujs', a więc jest wiele miejsc, w których można zmienić te połączenia ... – fotanus

Powiązane problemy