2016-02-26 60 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)” –

相关问题