正如Angular'} documentation所说
要匹配的属性值不能是表达式。他们是 解释为要匹配的文字字符串值。
但是,如果我想生成所有标记块(例如,带有嵌套内容的一些div),我可能需要使用ng-repeat
,为每个内容填充特定内容并设置每个ng-switch-when
它们是某个变量的值,例如,描述某个标记块的对象的某个id
字段。像ng-switch-when="{{data.id}}"
这样的AFAIK之类的东西不起作用。我怎样才能达到目标?是ng-switch
是否可能,或者可能没有这种方式,我必须使用ng-if
或其他什么?
正如评论中所提到的那样,我试着说明我的意思。我正在谈论的事情应该是这样的:
HTML:
<div ng-app="app" ng-controller="appCtrl">
<div ng-repeat="item in items" ng-switch on="selectedItem">
<p ng-switch-when="{{item.id}}">{{item.content}}</p>
</div>
</div>
JS:
var app = angular.module("app", []);
app.controller("appCtrl", ["$scope", function($scope) {
$scope.items = [{id:0, content:"foo"}, {id:1, content:"bar"}];
// selectedItem should actually be assigned by some user control like radio button but
// let's simplify and set it manually
$scope.selectedItem = 0;
}]);