AngularJS Attribute指令在编译时接收字符串

时间:2015-07-16 15:23:04

标签: angularjs

我有以下属性指令:

  (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)来计算字符串到相应的布尔值。这适用于寻找类似功能的人。

1 个答案:

答案 0 :(得分:0)

尝试使用{{}}

插值
<personal-details account="account" tab-switch="{{viewdetails}}"></personal-details>

然后检查&#34; true&#34;或&#34; false&#34;。