Angularjs :如何使用单个字符串或仅一个循环从angularjs中的ng-options检索数据



美好的一天,我想问一个关于使用字符串作为比较器从ng选项中检索选定数据的问题。

在我的控制器中,我有这些数据

$scope.myList = [
{ id: 0, name: "foo" },
{ id: 1, name: "foo1" },
{ id: 2, name: "foo2" }
];

为我的索引.html

<select 
ng-options="list.name for listin myList"
ng-model="selectedList"
/select>

所以场景是这样的,我有自己的方法来检索数据,但它包括嵌套循环,我的问题是,有什么方法可以只使用一个循环或一个行代码来做到这一点? 因为基本上我已经有了数据库中的值,所以有什么办法让我不需要迭代整个列表只是为了在 HTML 中选择输入的数据,或者如果不可能的话至少我不会使用嵌套循环,谢谢

这是我到目前为止尝试过的

// assume the value retrieved from database is "foo1"
var retrievedData = "foo1";
for(var i=0; i<myList.length; i++) {
if(myList[i]['name'] == retrievedData ) {
$scope.selected = myList[i];
}
}

你可以在一行中做到这一点,就像波纹管一样

var retrievedData = "foo1";
$scope.selected =  myList.find((ele) => ele['name'] == retrievedData);

find()将返回第一个匹配项。

你可以在一行中做到这一点,就像波纹管一样

myList.filter(function(listitem,listitemid){return listitem.name==retrievedData});

最新更新