Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.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 如何在angularjs中设置选择框的默认值_Javascript_Angularjs - Fatal编程技术网

Javascript 如何在angularjs中设置选择框的默认值

Javascript 如何在angularjs中设置选择框的默认值,javascript,angularjs,Javascript,Angularjs,我有一个用于编辑对象的表单,无法在“选择”框中选择值 我有一个json数组,它表示要编辑的对象,如下所示: $scope.item = [{ "objectID": "76", "versionID": "0", "versionName": "CURRENT", "objectName": "xyz",

我有一个用于编辑对象的表单,无法在“选择”框中选择值

我有一个json数组,它表示要编辑的对象,如下所示:

$scope.item = [{
    "objectID": "76",
    "versionID": "0",
    "versionName": "CURRENT",
    "objectName": "xyz",
}]
$scope.versions = [
{
    "id": "0",
    "description": "CURRENT",
    "name": "CURRENT"
},
{
    "id": "114",
    "description": "description of Version 2",
    "name": "version2"
},
{
    "id": "126",
    "description": "description of Version 3",
    "name": "version3"
},
{
    "id": "149",
    "description": "description of Version 4",
    "name": "version4"
}] 
现在,我同时从另一个json数组填充一个选择框,如下所示:

$scope.item = [{
    "objectID": "76",
    "versionID": "0",
    "versionName": "CURRENT",
    "objectName": "xyz",
}]
$scope.versions = [
{
    "id": "0",
    "description": "CURRENT",
    "name": "CURRENT"
},
{
    "id": "114",
    "description": "description of Version 2",
    "name": "version2"
},
{
    "id": "126",
    "description": "description of Version 3",
    "name": "version3"
},
{
    "id": "149",
    "description": "description of Version 4",
    "name": "version4"
}] 
在我的网页内,我正在创建选择框,如下所示:

Version: <select ng-model="item.versionID"
                 ng-selected="item.versionID"
                 ng-options="version.name for version in versions"
                 required>
版本:
正在为我填充选择框,但它应该选择与
项中的版本匹配的值。我尝试了
versionID
versionName
,甚至尝试了设置
ng selected=“0”
,但都不起作用

我看了Angularjs网站,谷歌搜索了无数的教程,但仍然有问题。我只是看不出有什么问题,所以非常感谢你的帮助

添加了JSFiddle
添加了一个JSFIDLE

它没有设置默认值,因为您的模型没有绑定到id或名称属性,而是绑定到每个
版本
对象。尝试将
versionID
设置为其中一个对象,它应该可以工作,即
$scope.item.versionID=$scope.versions[2]

如果要通过id属性进行设置,则需要添加语法:

ng options=“version.id作为版本中版本的version.name”

您可以像这样简单地使用

<select ng-init="somethingHere = options[0]" ng-model="somethingHere" ng-options="option.name for option in options"></select>

您只需附加

按版本跟踪.id


您的ng选项。

在搜索并尝试多个非工作选项以使我的选择默认选项工作后。我在以下位置找到了一个干净的解决方案:


scope.inputLeft=scope.selectOptions[0];
scope.inputRight=scope.selectOptions[1];

如果您甚至不想将ng模型初始化为静态值,并且每个值都是DB驱动的,那么可以通过以下方式完成。Angular比较计算值并填充下拉列表

下面的modelData.unitId是从DB中检索的,并与单元id列表进行比较,单元id列表是DB中的一个单独列表-

根据文档,以下代码对我有效

<div ng-controller="ExampleController">
<form name="myForm">
<label for="mySelect">Make a choice:</label>
<select name="mySelect" id="mySelect"
  ng-options="option.name for option in data.availableOptions track by     option.id"
  ng-model="data.selectedOption"></select>
</form>
<hr>
<tt>option = {{data.selectedOption}}</tt><br/>
</div>

作出选择:

option={{data.selectedOption}}
{{car.model}
var-app=angular.module('myApp',[]);应用程序控制器('myCtrl',函数($scope){$scope.cars=[{车型:“福特野马”,颜色:“红色”},{车型:“菲亚特500”,颜色:“白色”},{车型:“沃尔沃XC90”,颜色:“黑色”}];

$scope.selectedCar=$scope.cars[0].model;});
你能用它做一把小提琴吗?在这种情况下,应用硬编码的json。找到问题将变得更容易。访问:@thedarknight added JsFiddle is
$scope.item.versionID=$scope.versions[2]不覆盖我的项目中的值?我希望能够根据
项从
版本
中选择版本。versionID
@Robbo_UK你能解释一下你的意思吗?带有多个可选项的tya下拉列表。我明白了。您可以添加单词multiple。此外,如果您正在构建一个编辑表单,其中模型可能有值,也可能没有值,这很好:
ng init=“somethingHere=somethingHere | | | options[0]”
如果它发生在其他人身上,这只适用于我在
ng options
中添加
tracky by
的情况。我的选项是一组具有
\u id
的资源,因此我的选择看起来像:
如果我想选择version2作为默认值,而不知道绑定到对象时应该使用IDTrack by,该怎么办。这样,选择框就可以知道该值要使用哪些属性。如果我们明确指出应该用于值/文本的属性,则不需要按id添加轨迹。。更多信息可以在这里找到$scope.selectedCar=$scope.cars[0]。model;“将模型保留在控制器部分