Jquery 选择下拉列表AngulaJs的特定选项
我在ASP.NET MVC4中使用AngularJs。首先,我使用razor语法生成一个下拉列表Jquery 选择下拉列表AngulaJs的特定选项,jquery,angularjs,asp.net-mvc-4,Jquery,Angularjs,Asp.net Mvc 4,我在ASP.NET MVC4中使用AngularJs。首先,我使用razor语法生成一个下拉列表 @Html.DropDownList("packageName", (IEnumerable<SelectListItem>)ViewBag.packageName, "No Data Available", new { ng_model = "subForm.packageName" }) 但这会生成一个无效选项。错误如下所示: $('#packageName').empty();
@Html.DropDownList("packageName", (IEnumerable<SelectListItem>)ViewBag.packageName, "No Data Available", new { ng_model = "subForm.packageName" })
但这会生成一个无效选项。错误如下所示:
$('#packageName').empty();
$('#packageName').append($('<option />').val('').text('Select Package'));
$('#packageName').append($('<option />').val(1).text('Package 1'));
$scope.subForm.packageName = '1';
<select ng-model="subForm.packageName" name="packageName" id="packageName" class="ng-pristine ng-valid">
<option value="? string:1 ?"></option>
<option value="">Select Package</option>
<option value="1">Package 1</option>
</select>
选择包
包1
为什么第一个选项会生成?有什么解决方案吗?由于指令是如何执行的,它需要知道可用的选项值,以便将关联模型的值映射到选项。
您可以使用实现您想要的。这很简单:
<!-- In the VIEW: -->
<select id="packageName" ng-model="subForm.packageName"
ng-options="packageName for packageName in packageNames">
<option value="">Select Package</option>
</select>
/* In the CONTROLLER: */
$scope.packageNames = [...];
$scope.subForm = {
packageName: $scope.packageNames[0]
};
选择包
/*在控制器中:*/
$scope.packageNames=[…];
$scope.subForm={
packageName:$scope.packageName[0]
};
另外,请看,这个的“角度方式”应该是使用。然后继续使用它。但是这种方式有什么不对呢?我就是搞不懂,因为我还不能读懂你的心思。计划在4.2版中提供一项新服务,它将能够读懂您的心思,并以您所能想到的任何方式处理DOM(如果您足够专注)。如果您使用的是早期版本,则需要遵循一些约定,以便Angular知道发生了什么。如果不重新填充下拉列表,则可以通过为模型设置特定值来选择选项。但问题在于重新填充然后设置模型值。原因可能是什么?