簡體   English   中英

是否可以在AlloyUI中使用自定義連接器

[英]Is it possible to have custom connectors in AlloyUI

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'的對象。

使用此功能時,我可以將自定義節點拖放到畫布上,但是當我嘗試在其上使用連接器連接到另一個節點時,控制台中出現錯誤:

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。

最好的祝福

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM