2015-09-23 62 views
0

我想在頁面加載時啓動變量showName。它工作得很好,當我做了它只使用角度,但當我用rails實現它(與嵌入式紅寶石標籤)我無法隱藏文本字段和保存按鈕,因爲我的變量未定義。我嘗試了幾種方法,並沒有結果。嘗試在頁面加載時啓動變量Angularjs

這是我的代碼。任何幫助真的很感激。謝謝。

Edit.html.erb:

<div class="row" ng-controller="EditUserCtrl"> 
<div class="col-md-6 col-md-offset-3" id="editForm"> 
    <%= form_for(@user) do |f| %> 
     <h1 id="editHeader">Account Information </h1> 
     <%= render 'shared/error_messages' %> 
     <div class="form-group"> 
      <%= f.label :name, "Full Name:" %><br> 
      <div class="row"> 

       <div class="col-sm-7"> 
        <div ng-hide="showName"> 
         <%= f.label :name, @user.name , id:"editFields" %> 
        </div> 
        <%= f.text_field :name, { :'ng-show' => 'showName'}%> 
       </div> 

       <div class="col-sm-5" ng-show="showName"> 
        <%= f.button "Save", :action => "update_name" , :method => :put, class: "btn btn-primary", :'ng-click' => "clicked()", id:"editAccount" %> 
       </div> 

       <div class="col-sm-5" ng-hide="showName"> 
        <a href="" ng-click="editName()" ng-hide="showName"> <i id="nav-cart-count" class="glyphicon glyphicon-edit"></i> Edit </a> 
       </div> 

      </div> 
     </div> 
    <% end %> 
</div> 

+0

我很困惑。這個實現有rails和AngularJS。你是否在尋找整個片段只有軌道沒有任何Angular?如果是這樣,爲什麼Angular解決方案不起作用? –

+0

改變了什麼?不知道爲什麼你會首先將所有這些轉換爲ruby,但最終的結果應該與以前的工作不同。所有瀏覽器看到的都是html,所以應該是相同的 – charlietfl

+0

我的意思是即使將ruby標籤更改爲標準html標籤,它在rails上也不起作用,但是當我嘗試使用與正常html文件相同的代碼時,它的工作原理就是如此。 – Sumac

回答

0

使用NG-init初始化變量

<div class="row" ng-controller="EditUserCtrl" ng-init="showName = true"> 
+0

我也試過這個,因爲控制器在ng-init之前運行,所以它不起作用。在角度文檔https://docs.angularjs.org/api/ng/directive/ngInit中,它表示ng-init用於別名特殊屬性,而不是初始化作用域上的值。 – Sumac