我有以下属性指令:
(function() {
'use strict';
angular.module('IPSConsoleApp').directive('tabSwitch', function() {
return {
restrict: 'A',
priority: 100000,
scope: false,
compile: function(element, attr) {
if (attr.tabSwitch) {
element.children().remove();
element.remove();
}
}
};
});
})();
从我的观点中以下列方式使用:
<personal-details account="account" tab-switch="viewdetails"></personal-details>
viewdetails
是一个布尔值,设置为true或false,单击另一个按钮。
我在这里尝试做的是一个指令,而不是ng-if
,它在viewdetails
为真时删除了我的元素,并且没有创建新的子范围。
但是,在调试时,这是我在attr.tabSwitch
中收到的内容:
“viewdetails”
当然,我不想要实际的字符串。我想要实际的布尔值。这会发生吗?我一直在研究,无法找到传递这个布尔值的方法。
非常感谢您的帮助!
编辑:虽然我仍然没有找到任何解决这个问题的方法,但我最终使用了链接函数并使用scope.$eval(attr.tabSwitch)
来计算字符串到相应的布尔值。这适用于寻找类似功能的人。
答案 0 :(得分:0)
尝试使用{{}}
<personal-details account="account" tab-switch="{{viewdetails}}"></personal-details>
然后检查&#34; true&#34;或&#34; false&#34;。