AngularJS不渲染,除非我重新加载页面

时间:2014-03-31 06:38:44

标签: javascript ruby-on-rails angularjs

这是一个奇怪的问题。我正在使用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>

0 个答案:

没有答案