Ich habe diesen Code in einer .html.erb Datei:Rails: Zugriff auf Instanzvariablen aus nicht JS Inline
<script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script>
<script>
FB.Event.subscribe('edge.create',
function(response) {
send_fb_like();
}
);
FB.Event.subscribe('edge.remove',
function(response) {
send_fb_unlike();
}
);
function send_fb_like()
{
var business_name = '<%= @consumer.name %>';
alert("You liked"+consumer_name);
}
function send_fb_unlike()
{
var business_name = '<%= @consumer.name %>';
alert("You unliked"+consumer_name);
}
</script>
Dies ist korrekt funktioniert, und ich kann die @ consumer.name Zugriff richtig . Allerdings, wenn ich dies zu ändern:
Wo facebook_consumer.js sieht wie folgt aus:
$(function(){
FB.Event.subscribe('edge.create',
function(response) {
send_fb_like();
}
);
FB.Event.subscribe('edge.remove',
function(response) {
send_fb_unlike();
}
);
function send_fb_like()
{
var business_name = '<%= @consumer.name %>';
alert("You liked"+consumer_name);
}
function send_fb_unlike()
{
var business_name = '<%= @consumer.name %>';
alert("You unliked"+consumer_name);
}
});
Es wird speichern:
Sie mochte <%= @consumer.name %>
. Ich habe versucht, die Datei als js.erb zu speichern, aber dann scheint es nicht zu wissen, was @consumer ist.
Irgendwelche Gedanken darüber, was der beste Ansatz ist?
Manchmal erstelle ich einen Hash auf dem Markup wie diese einige Werte zu setzen, so dass die Javascript von der Referenz * Datei * wird in der Lage sein .. zugreifen Ich weiß nicht wirklich, ob dies eine gute oder schlechte Idee tho – MilkyWayJoe