2016-03-03 30 views
0

我在角

複選框使用可空日期時間在我的模型

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

在我的HTML表單命名名稱=「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> 
+0

看看這裏。 http://stackoverflow.com/questions/24758681/angularjs-checkbox-dynamic-ng-true-value-expression我不認爲'ng-true-value'可以是一個函數。 – jcc

+0

也許嘗試檢查開發工具中的memberInfo.Form對象。我認爲有一個$ error數組,可以遍歷以查找有問題的元素和原因 – brewsky

+0

感謝您的回覆@jcc ng-true-value與函數一起工作。這是當我將複選框設置爲false(使memberUnreachableDateTimeStamp爲空)表單變得無效時。 –

回答

0

好吧,所以我玩了一些更長的東西,並提出了以下解決方案。

在我的控制器我創建了一個名爲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; 
    } 
}; 

在我的HTML

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

似乎與可爲空的日期時間memberInformation.Details.MemberUnreachableDateTimeStamp設置爲工作null,並在此時保持我的表單有效。可能有一個更清潔的解決方案,所以如果你想到一個請讓我知道。