2014-11-20 2 views
0

Я использую Rails 3.2.16 и require.js (жемчужина «requirejs-rails»).Как использовать require.js внутри js.erb-файла

Мое приложение имеет модуль с именем ExpensesUI (вот фрагмент из него):

$(function() { 
    define('ExpensesUI', ['OperationsUI'], function(operationsUI) { 
    var expenses = { 
     operationConsolidatedCheckbox: "#operation_consolidated", 
     parcelledNoCheckbox: "#operation_parcelled_no", 
     parcelledYesCheckbox: "#operation_parcelled_yes", 

     /* more things */ 
    }; 
    } 
}); 

я могу использовать это прекрасно в любом .js файл с:

require(['ExpensesUI'], function(expensesUI) { console.log(expensesUI.parcelledNoCheckbox); }); 

Но когда я пытаюсь то же самое нужно вызвать в .js.erb, я получил «undefined» в журнале.

ответ

0

Невозможно использовать requirejs с файлами * .js.erb. Просто потому, что requirejs получает файлы из sprockets. Но вместо этого вы можете использовать named modules в * .html.erb, например:

<script> 
    define('mymodule', function() { 
    'use strict'; 
    return { 
     user: <%= @user.to_json.html_safe %> 
    }; 
    }); 
</script> 
Смежные вопросы