Angularjs ngClick和ngDisabled在模板化锚标记上
我正在执行以下指令:Angularjs ngClick和ngDisabled在模板化锚标记上,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我正在执行以下指令: module.directive('myButton',function(){ var指令={ 编译:编译, 限制:'E', 范围:{ 类型:“@”, 单击“&”, 已禁用:“@” }, 模板:“”, 转移:对 }; 函数编译(元素、属性){ if(typeof attributes.click=='undefined')attributes.click=function(){}; if(typeof attributes.disabled=='undefined')at
module.directive('myButton',function(){
var指令={
编译:编译,
限制:'E',
范围:{
类型:“@”,
单击“&”,
已禁用:“@”
},
模板:“”,
转移:对
};
函数编译(元素、属性){
if(typeof attributes.click=='undefined')attributes.click=function(){};
if(typeof attributes.disabled=='undefined')attributes.disabled=false;
}
返回指令;
});
我在一页上看到了一些像这样的假人:
测试A
我似乎无法让按钮的点击和禁用功能正常工作(至少不能同时工作)。我设计了锚定标签的样式,使其看起来像一个按钮。锚定标记不受disabled
属性的影响,因此ngClick
必须检查是否应该触发
如何使单击和禁用的功能按预期工作?您可以通过在其上设置
&
条件而不是|
来实现这一点。基本上,如果禁用标志为true
,则ng单击
表达式将不会进一步求值。如果为false,则将调用单击方法。请看附件中的plunkr示例
data-ng-click="!disabled && click()"
将禁用:'@'
更改为禁用:'='
只读参数('@'
)将作为字符串传入,而与分配给参数的变量类型无关。要使用布尔值;一个双向参数(“=”
)保持该类型。您的示例没有使用指令。你能把它扩大到更接近我的问题吗?为什么&&
能起作用,但不能|
?@ricksmt你没看过plunkr吗?是的。您不使用指令,只使用控制器和默认范围。
<my-button type="1a" click="alert('Button 1a works!')" disabled="false">Test A</my-button>
data-ng-click="!disabled && click()"