2016-02-26 58 views
0

我有以下形式。

一對夫婦的問題,我面對:

1 - 我無法與console.log($scope.myFirstForm.$pristine);我看到的錯誤檢查$pristine的形式:'不能讀取屬性未定義'$ prestine」。 基於我的代碼,這實際上是可能的,即當輸入字段嵌套在幾個div標籤中時使用?

2 - 要清除我目前不必單獨做每個字段的字段,是否有可能在它清除與所有輸入字段的形式做水平?

<form name="myFirstForm"> 
    <div class="row"> 
    <div class="large-12 medium-12 small-12 columns"> 
     <input ng-model="main.pToAdd" type="text"/> 
    </div> 
    </div> 

    <div class="row homeTopBackgroundColor"> 
    <div class="large-12 medium-12 small-12 columns"> 
     <h5>Room</h5> 
    </div> 
    <div class="row large-12 medium-12 small-12 columns"> 
      <input ng-model="main.o1ToAdd" type="text" /> 
    </div> 
    </div> 

    <div class="row"> 
    <div class="large-12 medium-12 small-12 columns"> 
     <input ng-model="main.opToAdd" type="text"/> 
    </div> 
    </div> 
</form> 

解決: 以我路線文件I被指定一個控制器(SO 2個控制器的一個頁上)。我正在檢查子範圍,而不是父母因此未找到。所以我刪除了路由文件中的一個控制器的設置,並將其指定在HTML所需的位置。

+0

你在'$ scope'上分配'myFirstForm'的地方? –

+0

不知道 - 猜測這是一個開始的問題。我認爲Angular自己做到了? – userMod2

+0

它沒有。 FormController的'$ pristine'屬性需要被窗體上的自定義指令訪問。從那裏,你可以把它分配給範圍或以其他方式做你需要的東西。 –

回答

1

首先包括在控制器的形式將自動在控制器的範圍。

輸入形式圍封的形式是一部分,無論它是多麼的嵌套。 (使用attr名稱可以驗證它們..給它們分配錯誤和狀態)

將表單設置爲pristine狀態將清除即使驗證。將您的案例中的主對象設置爲{}將清除所有輸入字段。

'不能讀取屬性未定義「$ prestine」 - >可能是因爲您在控制器調用它的形式在視圖中分配之前。嘗試任何按鈕點擊同樣的事情不應該給出相同的答案。

+0

那就是我放置該代碼'console.log($ scope.myFirstForm。$ pristine);'在一個按鈕上單擊,它給出了該錯誤。 – userMod2

+0

試圖安慰$範圍和查看屬性 –

+0

是這種形式在該範圍實際上被定義..你需要去的基本知識,有時是你忽略了的東西,如果沒有定義它試圖傳遞的形式在點擊按鈕和控制檯它.. ng-click =「func(myFirstForm)」 –

相關問題