我的angularjs ng开关有问题
JS-
function TestCtrl($scope) {
$scope.currentUser = {"userId":"1","userRole":"N"};
$scope.userRoles = {"normal":"N","admin":"A"}
$scope.patient = {name: 'John'};
}
HTML
<div ng-switch on="currentUser.userRole">
<a ng-switch-when="userRoles.normal" href="normalUrl">
{{patient.name}}
</a>
<a ng-switch-when="userRoles.admin" href="adminUrl">
{{patient.name}}
</a>
<div ng-switch-default> default </div>
</div>
</div>
我希望患者的姓名会显示到normalUrl的链接,但会显示"default"。我做错了什么?
这是一个篡改代码
ngSwitchWhen
指令不计算表达式(尽管我听说这可能会被添加到1.3中)。该值是作为字符串文字插入的,因此您必须这样使用它:
<a ng-switch-when="N" href="normalUrl">
这是可行的,但如果你真的需要动态地确定你的时间值,那么ngIf
可能更适合你的需求:
<a ng-if="currentUser.userRole === userRoles.normal" href="normalUrl">
<a ng-if="currentUser.userRole === userRoles.admin" href="adminUrl">