Ich lerne gerade Rails, und ich möchte angular in meinem Projekt verwenden.Rails Javascript-Assets verhalten sich merkwürdig abhängig vom Routing
Hier ist eine einfache Anwendung von Grund auf neu.
1). Erstellen Sie eine neue Schienen App:
rails new hello_rails
2). In Winkel Juwel Gemfile
gem 'angularjs-rails'
3). Installieren Sie das Bündel
bundle install
4). Fügen Sie eckigen Javascript-Manifest in app/assets/javascripts/application.js
5). Welcome Index erzeugen
rails generate controller welcome index
6). Füllen Sie index.html.erb mit einer eckigen Hallo Welt
7). Ändern Sie auch application.html.erb
<pre>
<!DOCTYPE html>
<html>
<head>
<title>HelloRails</title>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
<%= csrf_meta_tags %>
</head>
<body style = "background-color:green">
This is application.html.erb <br>
<%= link_to "click here to go home", root_path %> <br>
A yeild statement is below: <br>
<%= yield %>
</body>
</html>
8). Set Wurzel Route zu welcome#index
in config/routes.rb
root 'welcome#index'
Run dieses - das funktioniert gut.
Hier ist, was wir bekommen:
Die Winkel arbeitet:
Allerdings, wenn ich auf den Link klicken, um root_path
zurückzuversetzen
Zusätzlich, wenn wir etwas Winkel zu unserem application.html.erb
hinzufügen, ergeben sich die erzielten Winkelanschläge.
<div ng-app="">
<p>Name : <input type="text" ng-model="home_name"></p>
<h1>Hello {{home_name}} at home</h1>
</div>
Können Sie erklären, warum Schienen auf diese Weise funktioniert?
Haben Sie Turbolinks entfernt? – max
@max Nope ... .. – dwjohnston
Ich denke nicht, dass Turbolinks und eckig dazu gedacht sind, zusammen verwendet zu werden und höchstwahrscheinlich nicht gut spielen werden. Entfernen Sie Turbolinks aus Ihrer Gemfile und '// = erfordern Turbolinks' von Ihrer 'application.js'. – max