$(function(){
$("#login-btn").popover({
placement: 'bottom',
html: 'true',
content : function()
<%= render :partial => "shares/sample_partial" %>
}
})
$('html').click(function() {
$('#close').popover('hide');
});
Moim celem jest to, aby w fragmencie ‘content’ otworzyć shares/sample_partial. Próbowałem na różne sposoby “odpalić” kod railsowy w tym kawału JS niestety bez efektu.
Zdaję sobie sprawę, że w hamlu nie używa się wspomnianej składni, ale problem leży gdzie indziej. Postaram się go jaśniej wytłumaczyć.
powyższy kod tylko z fragmentem:
content : 'test'
po kliknięciu na linka otwiera popover’a, w którym pokazuje napis test, w wypadku wpisania content : ‘test’, otwiera popovera i pokazuje test (tylko, że pogrubiony) - generalnie to co w content wrzuca do popovera i renderuje.
Mój problem polega na tym, że ja chciałbym dodać tam dynamiczną zawartość, partial jest przykładem, bo dla uproszczenia mogę tam spróbować wyświetlić zmienną @test, której przypiszę wartość w kontrolerze.
Bez względu na to czy stosuję się do składni z .haml czy .erb zawsze dostaję syntax error (błąd JS), np. dla kodu:
content : function() {
console.log("klik");
= @test
}
Według mnie problem jest natury JavaScript’owej, a nie Rails’owej.
A wiesz, że to, co renderujesz tam za pomocą Ruby’ego, też musi być w “javascriptowym” cudzysłowie, dokładnie tak jak uprzedni ‘test’?
A w ogóle, jeśli nie wiesz, czy problem jest w javascripcie, czy w rubym, renderującym “niepoprawnie” zawartość, to odpal sobie jakieś narzędzie w stylu Firebuga (np. w chrome narzędzia developerskie uzyskuje się po naciśnięciu F12) i sprawdź:
a) Czy javascript jest generowany poprawnie;
b) Czy w konsoli nie wyświetlają się javascriptowe błędy.
EDIT: Stosuj też, jeśli renderujesz coś w ten sposób w javascripcie, helper escape_javascript.
\
Nie wiem. Może w związku z tym wskażesz mi jak uzyskać tam dynamiczną treść ?
[quote=Lypa]A w ogóle, jeśli nie wiesz, czy problem jest w javascripcie, czy w rubym, renderującym “niepoprawnie” zawartość, to odpal sobie jakieś narzędzie w stylu Firebuga (np. w chrome narzędzia developerskie uzyskuje się po naciśnięciu F12) i sprawdź:
a) Czy javascript jest generowany poprawnie;
b) Czy w konsoli nie wyświetlają się javascriptowe błędy.[/quote]
a) Tak
b) Lypa przecież pisałem wcześniej, że jest błąd syntax error z JavaScriptu, wydawało mi się to jasne, że nie wziąłem go z powietrza tylko z konsoli…
\
Nie wiem. Może w związku z tym wskażesz mi jak uzyskać tam dynamiczną treść ?[/quote]
Spróbuj jakbyś wiedział.
Jak się dowiedziałem na szybko stąd (samemu HAML-a nie miałem jeszcze okazji stosować), możesz zrobić po prostu tak:
content : "#{escape_javascript @test}"
[quote=trojek][quote=Lypa]A w ogóle, jeśli nie wiesz, czy problem jest w javascripcie, czy w rubym, renderującym “niepoprawnie” zawartość, to odpal sobie jakieś narzędzie w stylu Firebuga (np. w chrome narzędzia developerskie uzyskuje się po naciśnięciu F12) i sprawdź:
a) Czy javascript jest generowany poprawnie;
b) Czy w konsoli nie wyświetlają się javascriptowe błędy.[/quote]
a) Tak
b) Lypa przecież pisałem wcześniej, że jest błąd syntax error z JavaScriptu, wydawało mi się to jasne, że nie wziąłem go z powietrza tylko z konsoli…[/quote]
Nie skojarzyłem, wybacz.