我正在使用Rails 3.2.16和require.js('requirejs-rails'gem)。
我的应用有一个名为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
中尝试相同的需要调用时,我记录了'未定义'。
答案 0 :(得分:0)
无法将requirejs与* .js.erb文件一起使用。只是因为requirejs从sprockets获取文件。 但相反,您可以在* .html.erb视图中使用named modules,例如:
<script>
define('mymodule', function() {
'use strict';
return {
user: <%= @user.to_json.html_safe %>
};
});
</script>