美好的一天,我想问一个关于使用字符串作为比较器从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});