我有以下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="..."
和各种各样的东西。有什么想法吗?
答案 0 :(得分:3)
属性被视为javascript表达式,因此source="list-for-wf"
被解释为&#34;变量list
减去关键字for
减去变量wf
&#34 ;。 (我有点惊讶Angular不会在该关键字上抛出错误而不是返回零,但是嘿。)
我认为你想要一个带引号的字符串:<org-chart source="'list-for-wf'">