是否有可能在AlloyUI中有自定义连接器
问题描述:
AlloyUI newbie在这里,我想在YUI框架中非常基本的东西有问题。我使用的是AlloyUI 3.0.1,它仍然使用YUI和AngularJS。是否有可能在AlloyUI中有自定义连接器
问题是:有没有办法在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”。
当我使用这个时,我可以在画布上拖放自定义节点,但只要我尝试使用它上的连接器连接到另一个节点,我在控制台中出现错误:
Uncaught TypeError: undefined is not a function at line 920: aui-diagram-node.js
是:
return instance.get('connectors').has(transition.uid);
..而这正是我迷路。
我可以扩展“A.connector”并在“每个定制节点”的基础上使用它吗?如果是这样,怎么样?
任何帮助表示赞赏!
谢谢。
答
我想我有你应该调查至少方向(如果不是答案):
你可以(重新)编写自己的AUI-图建设者-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
带我一整天找到它:(
谢谢。我认为如果我一直参与这个项目的话就会有效果。我不再在那个项目中,但我会投票 - 可能会帮助别人! – trishulpani 2015-08-13 14:16:15