使用AngularJS将单选按钮值绑定到输入字段

时间:2015-06-19 14:49:07

标签: javascript angularjs

我有三个单选按钮A,B和C.如果选择B或C,则输入字段带有日期选择器显示。如果它是新记录,则当前日期将显示在输入字段中。 如果单选按钮' A'被选中'活跃'保存到表中。如果是' B'或者' C'然后选择当前日期或用户选择的日期存储在表格中。 我遇到的问题是,如果我选择A',' Active'存储在表中。当我去编辑并选择' B'或者' C',' Active'当输入字段应该是当前日期时显示在输入字段中。 我添加了ng-change到' B'或者' C'。在函数中,如果值==" Active"然后显示当前的日期和时间。 这很有用。如果我选择了' B',请选择一个日期,然后保存,返回并编辑,然后选择之前保存为' B'的日期。当它应该是当前日期时显示。 这是我的HTML:

 SELECT CONVERT(CHAR(17), PlannedStartDateUTC,13) 
 FROM   VisitMovement VM 
 WHERE  vm.VisitMovement_GUID = 
        ( 
               SELECT TOP 1 VM2.VisitMovement_GUID 
               FROM   VisitMovement VM2 
               WHERE  VM2.Visit_GUID = VisitMovement.Visit_GUID 
               ORDER BY VM2.OrderIndex) AS [Estimated Move],

这是控制器:

<div class="form-group"
                        <label class=" control-label col-xs-5" for="User">
                            Some Date:
                        </label>
                        <div class="col-xs-7 form-inner-group padRt0">
                            <div class="clearfix stackDate">
                                <input name="SomeDate" id="Date1_0" type="radio" ng-model="vm.approval.SomeDateID" ng-value="1">A<br />
                            </div>
                            <div class="clearfix stackDate">
                                <input name="SomeDate" id="Date1_1" type="radio" ng-model="vm.approval.SomeDateID" ng-change=vm.setDate() ng-value="2">
                                B <input class="form-field cal-field" type="text"
                                                             ng-show="vm.approval.SomeDateID==2" name="SomeDate"
                                                             ng-model="vm.approval.SomeDate"
                                                             datepicker-popup="dd-MMM-yyyy" close-text="Close" ng-model="vm.approval.SomeDateB"><br />

                            </div>
                            <div class="clearfix stackDate">
                                <input name="SomeDate" id="Date1_2" ng-model="vm.approval.SomeDateID" type="radio" ng-change=vm.setDate() ng-value="3">
                                C <input type="text" class="form-field cal-field" ng-required="vm.approval.SomeDateID==3" ng-show="vm.approval.SomeDateID==3"
                                name="SomeDateC" datepicker-popup="dd-MMM-yyyy" close-text="Close" ng-model="vm.approval.SomeDate"><br />
                            </div>
                        </div>
                    </div>

请注意,我还存储了数据库中每个单选按钮的id。

1 个答案:

答案 0 :(得分:0)

我想我只需要谈谈事情,因为我最终搞清楚了。这可能不是最好的方法,但是当页面加载时我将表中存储的id分配给局部变量。然后在ng-change函数中,我检查了该变量对所选vm的值。如果它们不相等,那么我将当前日期和时间分配给vm。这似乎有效。