Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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
Jquery 选择下拉列表AngulaJs的特定选项_Jquery_Angularjs_Asp.net Mvc 4 - Fatal编程技术网

Jquery 选择下拉列表AngulaJs的特定选项

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();

我在ASP.NET MVC4中使用AngularJs。首先,我使用razor语法生成一个下拉列表

@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知道发生了什么。如果不重新填充下拉列表,则可以通过为模型设置特定值来选择选项。但问题在于重新填充然后设置模型值。原因可能是什么?