1

为什么在禁用输入字段时角度评估模式。它的行为应该与隐藏输入字段时的行为相同吗?

检查这个小提琴, 小提琴供参考

<div ng-app>
    <div ng-controller="PatternTestCtrl">
        <form name="ngform">
            <label for="phone">Change the text to match the placeholder:</label><br/>
            <div>
                <input type="checkbox" ng-model="checkValue" />
            </div>
             used ng-pattern <input type="text" name="phone" ng-model="phone" ng-pattern="/^\d*$/" ng-disabled="!checkValue" maxlength="12" placeholder="555-555-5555"/>
            <div>Pattern validity : {{ngform.phone.$valid}}</div>
            <br>
            <div>
                used ng-if : <input type="text" name="dummyNum" ng-pattern="/^\d*$/" ng-model="dummyNum" ng-if="checkValue" />
            </div>    
        <div> ng-if input box validity : {{ngform.dummyNum.$valid}}</div>
        </form>
    </div>
</div>

附上图片供参考
输入字段处于活动状态

当它被禁用时

4

1 回答 1

2

ng-if从 dom 中删除元素,因此ng-pattern不会评估 。

ng-show/ng-hide,只是使元素不可见,因此ng-pattern仍会被评估。

ng-disable并且ng-pattern是不同的指令,为什么要混合它们的功能。

即使在禁用的字段上,我们在我们的应用程序中也确实会触发评估。所以我真的不明白为什么要将两者混为一谈。

于 2015-03-23T11:09:24.183 回答