在angularjs的控制器中按名称选择设置所选项目

时间:2016-06-10 02:01:22

标签: angularjs

我正在处理angularjs,我需要在所选项目中按名称设置所选项目。

我是如何做到的。我可以按索引设置项目,但如何处理itemname

例如:在加载时我将第一项设置为所选项

$scope.internalRoles = data;
                $scope.internalItemSelected = $scope.internalRoles[0];

和数据就像

 data = [{id : 1 , roleName : "admin"}
,{id : 2 , roleName : "superadmin"}]

现在我想根据roleName

设置所选项目
$scope.internalItemSelected =  $scope.internalRoles["superadmin"] ;//based on roleName

但它不起作用。

如何按名称设置?

2 个答案:

答案 0 :(得分:1)

您可以为数组编写扩展程序:

Array.prototype.findItem = function (searchFor) {    
    return this.find(function(item){
       return item['roleName'] === searchFor;
    });
};

然后用:

调用它
$scope.internalItemSelected =  $scope.internalRoles.findItem("superadmin");

您还可以将'roleName'作为扩展属性传递,以使其更常用。

答案 1 :(得分:0)

如果您想从所选项目中设置名称,那么请直接按照此

进行操作
$scope.internalRoles = data;
  $scope.internalItemSelected = $scope.internalRoles[0].roleName;
  console.log($scope.internalItemSelected);