如何创建动态命名的$ scope变量?

时间:2014-05-11 05:41:06

标签: angularjs

我有几个(超过30个)馈送器列表,其中console.log有几个节点如下所示:

{
   [functions]: ,
   __metadata: { },
   ID: 8,
   Id: 8,
   Title: "SharePoint"
}

所以我想显示名称(在名为标题的SharePoint中)任何列表而不是ID修改此功能以接受列表参数并动态创建 $ scope。" list" [w] 变量。这将使我不得不复制30个看起来像这样的函数:

$scope.getWebsite = function(id){
    for(w=0; w<$scope.websites.length; w++){
        if($scope.websites[w].ID == id){
        return $scope.websites[w].Title;
        } // end if
    } // end for
};

并将其称为:

<p>{{getValue('division', thisProject[0].Division_ID)}}</p>

我尝试了这个并且它没有工作:

$scope.getValue = function( list, id ){
    var dyno = '$scope.' + list;
    for(w=0; w<dyno.length; w++){
            if(dyno[w].ID == id){
            return dyno[w].Title;
            } // end if
        } // end for
    };

1 个答案:

答案 0 :(得分:1)

不要连接'$scope.' + list,而是试试这个:

var dyno = $scope[list];

你的功能如下:

$scope.getValue = function( list, id ){
    var dyno = $scope[list];
    for(w=0; w<dyno.length; w++){
      if(dyno[w].ID == id){
          return dyno[w].Title;
      } // end if
    } // end for
};

Plunker