使用另一个 $scope 变量显示 $scope 变量

Display a $scope variable using another $scope variable

在Angularjs

中显示类似于ng-repeat元素的作用域变量

这些是我的范围变量

$scope.published = true;
$scope.count = 3;

我还有一个名为 labels 的数组

$scope.labels = ['published', 'count'];

在视图中我想以标签名称 - 标签值的形式查看这些数据。

<div ng-repeat="label in labels">
    {{label}} -  {{Here I want the value from the Scope variable}}
</div>

谁能帮我在这种情况下如何访问作用域变量?

将您的标签映射到 {key:"labelKey", value:"valueInScope"},以便您可以在模板中使用它们。

类似这样的方法可行

labels = ['published','count']
         .map(
             function(label){
                return {key:label,value:$scope[label]}
             }); 

然后使用

<div ng-repeat="label in labels">
   {{label.key}} - {{label.value}}
</div>

使用 this 标识符和 bracket notation property accessors:

<div ng-repeat="label in labels">
    {{label}} -  {{this[label]}}
</div>

来自文档:

It is possible to access the context object using the identifier this and the locals object using the identifier $locals.

有关详细信息,请参阅

演示

angular.module("app",[])
.controller("ctrl", function($scope) {
    $scope.published = true;
    $scope.count = 3;
    $scope.labels = ['published', 'count'];
})
<script src="//unpkg.com/angular/angular.js"></script>
<body ng-app="app" ng-controller="ctrl">
    <div ng-repeat="label in labels">
        {{label}} -  {{this[label]}}
    </div>
</body>