是否可以在AlloyUI中使用自定义连接器

时间:2015-03-19 09:16:39

标签: javascript yui alloy-ui

AlloyUI新手在这里,我猜我遇到了一些非常基本的YUI框架的问题。我使用的是AlloyUI 3.0.1,它仍然使用YUI和AngularJS。

问题是:有没有办法在每个自定义节点上创建自定义连接器' AlloyUI的基础?

目标是为每个自定义节点提供不同的自定义连接器(具有一组单独的自定义属性)。例如,假设我有2个自定义节点A和B,我想要使用一种类型的自定义连接器连接节点A-A,使用另一种连接器连接B-B。这可能吗?

我能够创建具有自定义属性等的自定义节点,如下所示:

  service.getScriptContainer = function(Y) {
    var scriptContainer = Y.Component.create({
        NAME: 'diagram-node',
        ATTRS: {
          //..custom properies,
            connectors : {
                valueFn : function(){
                    return ConnectorFactory.getScriptConnector(Y);
                }
            }
        },
        EXTENDS: Y.DiagramNodeTask,
        prototype: {
          .....
}

其中ConnectorFactory是一个AngularJS工厂,它返回一个类型的对象:' A.Connector'。

当我使用它时,我能够在画布上拖放自定义节点,但是当我尝试使用它上的连接器连接到另一个节点时,我在控制台中收到一条错误消息:< / p>

Uncaught TypeError: undefined is not a function at line 920: aui-diagram-node.js

是:

 return instance.get('connectors').has(transition.uid);

..这就是迷路的地方。

我可以扩展&#39; A.connector&#39;并在每个自定义节点上使用它&#39;基础?如果是这样,怎么样?

感谢任何帮助!

感谢。

2 个答案:

答案 0 :(得分:0)

我认为我至少应该调查方向(如果不是答案):

你可以(重新)编写自己的aui-diagram-builder-connector.js和&#34;替换/劫持旧的&#34;通过applyConfig - 像这样:

YUI().use('aui-diagram-builder', function(Y) {

    /* your code */

}).applyConfig({ /* her we "hijack" default aui-diagram-builder-connector file  */
       modules: {
             "aui-diagram-builder-connector": {
                    fullpath: '/js/aui-diagram-builder-connector-mine.js' /* use relative path and minified version if possible */
             }
       }
});

这将为内置的必需模块加载新文件,因此您可以在保持旧文件不变的情况下获得最大的自由:)

这一次救了我一次,我希望它也可以拯救别人:D

花了我一整天才找到它:(

答案 1 :(得分:0)

我对此进行了测试,但在DiagramBuilder中从未加载或使用cpied /js/aui-diagram-builder-connector-mine.js。

最好的问候