AngularJS将ng-model设置为Null,并且仍然具有$valid形式



我在角度复选框中使用可空的日期时间

在我的模型中

public Nullable<System.DateTime> MemberUnreachableDateTimeStamp { get; set; }

在我的 html 表单中名为 name="memberInfoForm"

<input type="checkbox"
       ng-model="memberInformation.Details.MemberUnreachableDateTimeStamp"
       ng-checked="memberInformation.Details.MemberUnreachableDateTimeStamp != null"
       ng-true-value="{{getDatetime()}}"
       ng-false-value="{{null}}">
我有一个按钮,

每当我单击复选框将其设置为当前日期时间,然后再次单击它以将其设置回空表单变得无效时,该按钮就会被禁用。我尝试设置 ng-false-value="{{"null"}}"(没有成功)任何其他建议将不胜感激!谢谢!

下面是我的按钮,如果能提供更多见解,它会检查表单的有效性。

<button type="button" class="btn btn-primary btn-sm" ng-disabled="!memberInfoForm.$valid" ng-click="memberInfoForm.$valid && SaveUserInformation()">Save Personal Information</button>

好的,所以我玩了更长的时间,并提出了以下解决方案。

在我的控制器中,我创建了一个名为 UpdateMemberUnreachableDateTimeStamp 的函数和一个新的范围变量 memberUnreachable

$scope.memberUnreachable;
$scope.UpdateMemberUnreachableDateTimeStamp = function (checked) {
    if (checked)
    {
        $scope.memberInformation.Details.MemberUnreachableDateTimeStamp = new Date();
        $scope.memberUnreachable = true;
    }
    else {
        $scope.memberInformation.Details.MemberUnreachableDateTimeStamp = null;
        $scope.memberUnreachable = false;
    }
};

在我的网页中

<input type="checkbox"
       ng-model="memberUnreachable"
       ng-checked="memberInformation.Details.MemberUnreachableDateTimeStamp != null"
       ng-click="UpdateMemberUnreachableDateTimeStamp(memberUnreachable)" />

似乎可以将可空的日期时间成员信息.详细信息.成员无法访问日期时间戳设置为空,并在这样做时保持我的表单有效。可能有一个更干净的解决方案,所以如果你想到一个,请告诉我。

最新更新