这是一个奇怪的问题。我正在使用Ruby on Rails,我有一个使用ng-model
的简单角度应用程序。而已。死简单。
当我向上拉页面时它会起作用。我在输入中键入我的名字,并将其绑定到DOM。真棒。
这是在帐户的编辑页面上。我转到/account
,然后点击/account/edit
。我看一下应该呈现所有内容的Spot,而不是看到我的名字(通过ng-init
),我得到:{{ user.first_name }} {{ user.last_name }}
。
关键问题:为什么Angular只在我重新加载页面时呈现而不是在我访问页面时呈现?
代码:
<div class="container">
<%= form_for current_user, url: user_path(current_user.id), method: :patch do |f| %>
<div class="col-md-5 col-md-offset-1">
<div class="row" id="my-account-user-info">
<div>
<%= image_tag current_user.gravatar_url(:secure => true), :class => "img-rounded" %>
</div>
<div>
<p class="lead">{{ user.first_name }} {{ user.last_name }}</p>
<p class="lead">{{ user.email }}</p>
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<%= f.label :first_name %>
<%= f.text_field :first_name,
:placeholder => current_user.first_name,
:class => "form-control",
"ng-model" => "user.first_name",
"ng-init" => "user.first_name='#{current_user.first_name}'" %>
</div>
<div class="form-group">
<%= f.label :last_name %>
<%= f.text_field :last_name,
:placeholder => current_user.last_name,
:class => "form-control",
"ng-model" => "user.last_name",
"ng-init" => "user.last_name='#{current_user.last_name}'" %>
</div>
<div class="form-group">
<%= f.label :email %>
<%= f.email_field :email,
:placeholder => current_user.email,
:class => "form-control",
"ng-model" => "user.email",
"ng-init" => "user.email='#{current_user.email}'" %>
</div>
</div>
<% end %>
</div>