Ruby on rails 在rails中加载特定于页面的javascript
我正在开发Rails/Angular应用程序。Ruby on rails 在rails中加载特定于页面的javascript,ruby-on-rails,angularjs,Ruby On Rails,Angularjs,我正在开发Rails/Angular应用程序。app/themes下有特定于主题的文件夹,这些文件夹被添加到资产管道中 config/initializers/assets.rb Dir[Rails.root.join("app", "themes", "*")].each do |path| %w{stylesheets javascripts images fonts}.each do |type| theme_assets = File.join(path, type)
app/themes
下有特定于主题的文件夹,这些文件夹被添加到资产管道中
config/initializers/assets.rb
Dir[Rails.root.join("app", "themes", "*")].each do |path|
%w{stylesheets javascripts images fonts}.each do |type|
theme_assets = File.join(path, type)
Rails.application.config.assets.paths << theme_assets
end
theme_folder = File.basename(path)
Dir["#{path}/images/*"].each do |img|
Rails.application.config.assets.precompile += [ File.basename(img) ]
end
Rails.application.config.assets.precompile += [ "#{theme_folder}/index.css",
"#{theme_folder}/index.js" ]
end
从app/assets/javascripts
app/themes/#{theme\u folder}
中特定于页面的javascript在angular之前加载
我想在这个特定于页面的javascript中运行一些角度代码。所以我需要在angular完成后加载它。加载代码时不必运行代码(取决于您编写代码的方式)。您可以在事件中触发它,例如在DocumentReady上 我不知道这是否适用于您的用例,但也许您可以这样封装它:
var MyCode = (function () {
function myFunc(){
}
function myFunc2(){
}
return {
myFunc: myFunc,
myFunc2: myFunc2
}
}());
$(document).on('ready', function () {
MyCode.myFunc();
MyCode.myFunc2();
});
您是否尝试将
Rails.application.config.assets.precompile+=“angular\u vendor.js”
添加到config/initializers/assets.rb
中,或者另一种方法可以是:Rails.application.config.assets.precompile+=%w(angular\u vendor.js)
它已经在config/initializers/assets.rb
中,并且是数组形式。
var MyCode = (function () {
function myFunc(){
}
function myFunc2(){
}
return {
myFunc: myFunc,
myFunc2: myFunc2
}
}());
$(document).on('ready', function () {
MyCode.myFunc();
MyCode.myFunc2();
});