使用另一个 $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>
在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>