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;基础?如果是这样,怎么样?
感谢任何帮助!
感谢。
答案 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。
最好的问候