Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以在AlloyUI中使用自定义连接器_Javascript_Yui_Alloy Ui - Fatal编程技术网

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

Javascript 是否可以在AlloyUI中使用自定义连接器,javascript,yui,alloy-ui,Javascript,Yui,Alloy Ui,这里是AlloyUI新手,我想我在YUI框架的一些非常基本的东西上遇到了问题。我正在使用Alloyui3.0.1,它仍然使用YUI和AngularJS 问题是:在AlloyUI中有没有一种方法可以在“每个自定义节点”的基础上创建自定义连接器 目标是能够为每个自定义节点提供不同的自定义连接器(具有一组单独的自定义属性)。例如,假设我有两个自定义节点A和B,我希望使用一种自定义连接器连接节点A-A,使用另一种自定义连接器连接节点B-B。这可能吗 我可以使用自定义属性等创建自定义节点,如下所示:

这里是AlloyUI新手,我想我在YUI框架的一些非常基本的东西上遇到了问题。我正在使用Alloyui3.0.1,它仍然使用YUI和AngularJS

问题是:在AlloyUI中有没有一种方法可以在“每个自定义节点”的基础上创建自定义连接器

目标是能够为每个自定义节点提供不同的自定义连接器(具有一组单独的自定义属性)。例如,假设我有两个自定义节点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”的对象

当我使用此选项时,我可以在画布上拖放自定义节点,但当我尝试使用其上的连接器连接到另一个节点时,控制台中会出现一个错误,提示:

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

 return instance.get('connectors').has(transition.uid);
。。这就是我迷路的地方

我可以扩展“A.connector”并在“每个自定义节点”的基础上使用它吗?如果是,怎么做

感谢您的帮助


谢谢。

我想我至少有你应该调查的方向(如果不是答案):

您可以(重新)编写自己的aui-diagram-builder-connector.js,并通过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


我花了一整天的时间找到它:(

我测试了这个,但是DiagramBuilder中从来没有加载或使用cpied/js/aui-diagram-builder-connector-mine.js


致以最诚挚的问候

谢谢。我想如果我参与了那个项目的话,这会起作用的。我不再参与那个项目了,但我会投票——可能会帮助其他人!