首页 文章

如何将变量作为属性名称传递给角度2插值运算符中的其他对象的访问值?

提问于
浏览
0

我想将变量作为其他对象的属性传递,并在angular 2插值运算符中访问该属性的值 .

我有两个对象如下:

obj1 = { "abc":"123", "xyz":"456", "pqr":"789"}
obj2 = { "123":"name1", "456":"name2", "789":"name3"}

我想基于obj1属性名显示name1,name2和name3,所以我尝试了下面的解决方案但是没有在HTML中显示值 .

{{obj2["'+obj1.abc+'"]}}

我怎样才能做到这一点?

2 回答

  • 0

    你不需要创建一个字符串 . 将评估 [] 中的表达式并将其值用作属性名称 .

    {{ obj2[obj1.abc] }}
    

    const obj1 = { "abc":"123", "xyz":"456", "pqr":"789"};
    const obj2 = { "123":"name1", "456":"name2", "789":"name3"};
    
    console.log( obj2[obj1.abc] );
    
  • 0
    <!doctype html>
    <html >
      <head>
        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular.min.js"></script>
        <script>
        var myApp = angular.module('myApp', []);
    
    myApp.controller('myController', ['$scope', function($scope){
        // Here the array would be your response.text:
         $scope.obj1 = { "abc":"123", "xyz":"456", "pqr":"789"};
        $scope.obj2 = { "123":"name1", "456":"name2", "789":"name3"};
    
    }]);
       
        </script>
      </head>
      <body >
        <div ng-app="myApp" ng-controller="myController">
        <ul>
            <li ng-repeat="x in obj1">
                {{x}} | {{obj2[x]}}
            </li>
        </ul>
    </div>
      </body>
    </html>
    

相关问题