角度指令 - 范围返回0而不是值

时间:2016-02-03 13:27:37

标签: javascript jquery angularjs

我有以下Angular指令:

var OrgChartDirective = function() {
    return {
        restrict: 'AE',
        scope: {
            source     : '=',
            container  : '=',
            stack      : '=',
            depth      : '=',
            interactive: '=',
            showLevels : '=',
            clicked    : '=' // We use '=' here rather than '&' for this callback function
        },
        link: function(scope, element, attrs) {
            var target = $(element);
            var source = $('#' + scope.source);
            var options = {
                container  : target,
                nodeClicked: scope.clicked,
                stack      : scope.stack,
                depth      : scope.depth,
                interactive: scope.interactive,
                showLevels : scope.showLevels
            };
            console.log("Drawing org chart at " + scope.source + " on " + target);
            console.log(scope);
            source.orgChart(options);
        }
    }
};

我将它添加到页面中:

<org-chart source='list-for-wf'/><div org-chart source='list-for-wf'> </div>

问题是,在我的控制台中,我看到了:

Drawing org chart at 0 on [object Object]

为什么源返回0,当您尝试访问无效元素时,这就像jquery一样。即使我将source记录为链接函数的第一行,它也是0

为什么?我尝试了data-source="..."和各种各样的东西。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

属性被视为javascript表达式,因此source="list-for-wf"被解释为&#34;变量list减去关键字for减去变量wf&#34 ;。 (我有点惊讶Angular不会在该关键字上抛出错误而不是返回零,但是嘿。)

我认为你想要一个带引号的字符串:<org-chart source="'list-for-wf'">