javascript - 大崩OrgChart库样式节点

标签 javascript jquery css orgchart getorgchart

我正在使用 Dabeng Orgchart 库,但我想自定义节点,特别是创建一个菱形而不是大多数示例中的正方形。我看过 createNode 方法,也找到了各种用于创建菱形的 CSS,但我不知道如何将其集成到大崩组织结构图中。我想要做的是在满足某些条件时显示菱形,如果满足其他条件则显示默认方形。我在网上搜索过,但没有改变形状的例子。

最佳答案

我目前正在为组织结构图使用 nodeTemplate 属性。示例:

var oc = $('#container').orgchart({
   ...
   'nodeTemplate': orgTemplate,
   ...
});

在您的 orgtemplate 函数中,数据是您包含在组织结构图数据中的任何内容(在示例中是姓名和职务)。你可以用其他标志填充这个对象。例如,我有一个图表,我在其中创建了新节点并允许用户在将数据提交到图表之前将数据输入到节点中。我的数据对象中有一个标志 data.isSaved 告诉我的模板这个节点是否被保存。如果已保存,我会进行内联 html 检查(在 AngularJS 中使用 ngIf 等,如果您完全熟悉 AngularJS)以根据数据更改模板。

在 VanillaJS 中,您可以只返回纯 HTML,而无需 $compile 和所有附加到您自己的节点模板中的泵。您实际上可以在函数内进行检查,例如:

function orgTemplate(data) {
    if(data.isDiamond) {
       return '<div class="diamond">...</div>';
    } else {
       return '<div class="square">...</div>';
    }
}

我在我的网站中使用 AngularJS,因此我定义了新的范围并使用 Angular Directive(指令)使其更具可扩展性。这供任何偶然发现此问题的人引用。我的 orgTemplate 函数定义如下。

function orgTemplate(data) {
    var newScope = $scope.$new(true);
    newScope.data = data;
    return ( $compile('<div data-ng-include="\'.../template.html\'"></div>')(newScope));
}

这是组织结构图 Github因为我确定您已经浏览过很多次了。如果您查看底部,您将看到我上面提到的 nodeTemplate 属性定义。希望这对您有所帮助!

旁注:我在使用自定义模板时遇到了一些样式问题,尤其是在定义不同的图形方向(即“l2r”)时。

关于javascript - 大崩OrgChart库样式节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46962530/

相关文章:

asp.net - JQuery Parent().下一期

html - 为什么我的图片没有放在文字的右侧?

html - :hover not working on stacked font-awesome icon

javascript - Casperjs 捕获 console.log 和 console.error

javascript - 如何在javascript中制作一个过滤器,通过复选框过滤div

javascript: 点击 table1 列幻灯片显示 table2 列

jquery - HTML 表格中堆叠和分组的条形图

javascript - 使用 JavaScript 更改整个页面的前景色和背景色

javascript - 如何在 typescript 定义中指定松散类型的对象文字?

html 和 css div 放置