Javascript 为什么ng模型重置所选选项?
选择列表由php在页面中生成。当我将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&
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;
};