質問

私は私のコントローラー内にフォームを持っています。このフォームの有効性に基づいてスコープ変数を設定できるようにしたいのですが。私は既に名前を付けてください:

<div ng-controller="myCtrl">

    ...

    <form name='myForm'>
        ...
    </form>

    ...

</div>
.

そのフォームの$ validプロパティに$ Watchを作成しました(これはこのフォームを含むコントローラにあります):

$scope.$watch('myForm.$valid', function(oldVal, newVal) {
    console.log("Woo! This might be working!");
    if (newVal) {
        $scope.otherVar = true;
    } else {
        $scope.otherVar = false;
    }
}
.

私のlog文はページ負荷にのみ表示されますが、フォームの有効性が変わったらは表示されません。(フォームの$有効なプロパティが挿入によって変更されていることを確認しました。

{{myform. $有効}}}}}}}}}}}}} 私の形の範囲内で)

私は探していて、私がこのを見たことからが働くべきであることから見ています。(明らかに何かが間違っています...)

役に立ちましたか?

解決

あなたの問題はfunction(oldVal, newVal)であると思います。 それとは別に、あなたのコードに障害が見つかりません。 これがワーキングプルンツの例です。 http://plnkr.co/edit/ur42hfcvqbptebkrbtdy?p=previewed/a>

それがおそらくあなたのコードに影響を与えるあなたのコードの他の何かであることは、function(newVal, oldVal)またはng-ifのようなものにネストしていませんか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top