Angularjs 如何使ng select正常工作
我有一个ng select元素:Angularjs 如何使ng select正常工作,angularjs,Angularjs,我有一个ng select元素: <body ng-controller="MainCtrl"> <select ng-model="selectedItem" ng-model="selectedItem"> <option value="-1" selected>- manual -</option> <option ng-repeat="(key, value) in items">{{val
<body ng-controller="MainCtrl">
<select ng-model="selectedItem" ng-model="selectedItem">
<option value="-1" selected>- manual -</option>
<option ng-repeat="(key, value) in items">{{value.Name}}</option>
</select>
</body>
这里有工作
在ng select的内部,我有两个选项:静态(manual
-)和ng repeat元素生成的选项
我的问题是:当用户选择ng生成的选项时,重复
$scop.selectedItem
获取所选项目的名称
,同时我需要设置所选元素的Id
例如:
如果在上面的plunker中,用户从ng选择元素two
中选择$scop.selectedItem
将获得two
项目的名称,而我需要$scop.selectedItem
获取所选项目的Id
您知道如何使
$scop.selectedItem
获取所选项目的Id
吗?请查看ng options
指令。您可以传递一个类似列表理解的表达式来提取所需内容
例如:
<select ng-options="item as item.label for item in items track by item.id" ng-model="selected"></select>
请查看
ng options
指令。您可以传递一个类似列表理解的表达式来提取所需内容
例如:
<select ng-options="item as item.label for item in items track by item.id" ng-model="selected"></select>
正如Delapouite所说,您应该使用ng选项。我已经更新了您的应用程序来实现这一点
var-app=angular.module('plunker',[]);
应用程序控制器('MainCtrl',函数($scope){
$scope.items=[{name:'-manual-',id:-1},
{name:'one',id:30},
{name:'two',id:27},
{name:'threex',id:50}];
$scope.selectedItem=$scope.items[0];
});代码>
正如Delapouite所说,您应该使用ng选项。我已经更新了您的应用程序来实现这一点
var-app=angular.module('plunker',[]);
应用程序控制器('MainCtrl',函数($scope){
$scope.items=[{name:'-manual-',id:-1},
{name:'one',id:30},
{name:'two',id:27},
{name:'threex',id:50}];
$scope.selectedItem=$scope.items[0];
});代码>
试试这个
<option ng-repeat="(key, value) in items" key="{{value.Id}}" value="{{value.Id}}">{{value.Name}}</option>
{{value.Name}
我所做的只是设置了key和value={{value.Id}},selectedItem将拾取它
这是试试这个
<option ng-repeat="(key, value) in items" key="{{value.Id}}" value="{{value.Id}}">{{value.Name}}</option>
{{value.Name}
我所做的只是设置了key和value={{value.Id}},selectedItem将拾取它
以下是我建议使用ng选项的,并在$scope.items
中推送默认值(手动)
我使用ng init
将select的默认值设置为-manual-
<body ng-controller="MainCtrl">
<select ng-model="selectedItem" ng-options="i.Id as i.Name for i in items" ng-init="selectedItem = items[0].Id"></select>
selected item: {{selectedItem}}
</body>
这里有一个我建议使用ng选项
并在$scope.items
中推送默认值(手动)
我使用ng init
将select的默认值设置为-manual-
<body ng-controller="MainCtrl">
<select ng-model="selectedItem" ng-options="i.Id as i.Name for i in items" ng-init="selectedItem = items[0].Id"></select>
selected item: {{selectedItem}}
</body>
这里有一个使用as
和track by
可能会破坏绑定。同时使用as
和track by
可能会破坏绑定。另外,与您的问题无关,您确实不应该将您的属性资本化。大写名称应保留给类。其中一个答案是否解决了您的问题?:)另外,与你的问题无关,你真的不应该把你的财产资本化。大写名称应保留给类。其中一个答案是否解决了您的问题?:)