我的指令定义如下:
.directive('question', function() {
return {
restrict: 'AE',
replace: 'true',
templateUrl:'scripts/directives/questions/tpl.html',
link: function($scope, $element,$attrs){},
controller: function($scope, $element,$attrs,Type,Templates){
$scope.editButtonVisible = false;
if($scope.editMode == 'w'){
$scope.editButtonVisible = true;
}
},
scope: {
editMode : '=isReadOnly'
}
};
});
我的问题是,当我尝试将变量editButtonVisible与ngShow或ngSwitch一起使用时,它不起作用,例如以下示例:
<ANY ng-switch="editButtonVisible">
<ANY ng-switch-value="true">
<button>edit</button>
</ANY>
<ANY ng-switch-value="false">
<h1>No button</h1>
</ANY>
<ANY ng-switch-default>
<h1>Default action</h1>
</ANY>
</ANY>
显示按钮,同时显示两个h1。
答案 0 :(得分:0)
首先,您不需要为此方案定义另一个变量。
接下来,您的控制器可以导入&#39; $ scope&#39;,但没有像&#39; $ element&#39;,&#39; $ attrs&#39;为控制器。您可能会将功能签名与“链接”功能签名混淆。功能
接下来,您的链接&#39;功能签名是错误的。虽然控制器功能类似controller: function($scope)
,但链接功能如下:link: function(scope, element, attrs)
。应该没有&#39; $&#39;登录。
看看下面的小提琴。