Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么ng模型重置所选选项?_Javascript_Angularjs - Fatal编程技术网

Javascript 为什么ng模型重置所选选项?

Javascript 为什么ng模型重置所选选项?,javascript,angularjs,Javascript,Angularjs,选择列表由php在页面中生成。当我将ng model添加到此选择中时,它将重置所选的默认选项 <select name="day" ng-model="day" class="form-control" ng-required="true" required="required"> <option value="22" selected="selected">22</option> <option value="23">23</option&

选择列表由php在页面中生成。当我将
ng model
添加到此选择中时,它将重置所选的默认选项

<select name="day" ng-model="day" class="form-control" ng-required="true" required="required">
<option value="22" selected="selected">22</option>
<option value="23">23</option>
</select>

22
23

如何修复它?

假设
var currentDay=''+(new Date()).getDate()

您应该使用
ng选项
并设置
$scope.day=currentDay用于选择当前日期

刚才讨论了ng选项与重复选项的比较

<select name="day" ng-model="day" class="form-control" ng-required="true" required="required">
    <option value="21">21</option>
    <option value="22">22</option>
    <option value="23">23</option>
</select>
$scope.day = currentDay; // Get the current day of month as a string.
一般来说,
ng options
更好(没有双关语),因为它更灵活


如果不想使用
ng选项
,请将
$scope.day=currentDay
在您的作用域中,并删除
selected=“selected”
,因为将在
$scope.day
和选项值之间进行绑定请参见

模板:


有一个简单的解决方案

如果从后端创建
选择
,请按如下所示放置
ng init

<select name="day" ng-model="day" ng-init="day=22"...
在控制器中

$scope.initializeScopeVariables = function(initSelectedVal) {
   $scope.day = initSelectedVal;
};

以下是

ng模型
是设置输入控件值的工具。它是双向工作的-它是由与控件交互的用户设置的,并且通过更改
ng model
,控件会做出反应。如果要设置您想设置为默认值的值,则控制器日变量中的设置值不起作用,您可以在
$scope.day
中检查您有什么?因为您没有在问题中解释您要选择当前日期。。。您可以将
$scope.day=''+(新日期()).getDate()
。这将给您带来当前的一天。我不能使用<代码> NG选项>代码>我的SelcET列表必须由phpho创建,“我的选择列表必须由PHP创建”阻止您使用“代码> NG选项< /代码>吗?如果它是由PHP创建的,那么可以考虑使用Ajax调用并将其插入到$范围内,作为包含日期的对象。
$scope.initializeScopeVariables = function(initSelectedVal) {
   $scope.day = initSelectedVal;
};