2014-11-20 77 views
0

我正在使用Rails 3.2.16和require.js('requirejs-rails'gem)。如何在js.erb文件中使用require.js

我的應用程序有一個名爲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

對* .js.erb文件使用requirejs是不可能的。僅僅因爲requirejs從sprockets中獲取文件。但是,您可以在* .html.erb視圖中使用named modules,例如:

<script> 
    define('mymodule', function() { 
    'use strict'; 
    return { 
     user: <%= @user.to_json.html_safe %> 
    }; 
    }); 
</script>