我尝试做一个Brackets扩展(网页编辑器),我必须创建一个底部面板,但它永远不会出现, show方法什么都不做,也是setVisible, 你能告诉我为什么吗? THX ...
define (require, exports, module)->
log = (s)->
console.log "%c[SQL-DISPLAY] " + s, "color:#f4aa05;font-size:large"
log "started..."
commandManager = brackets.getModule "command/CommandManager"
menus = brackets.getModule "command/Menus"
appInit = brackets.getModule "utils/AppInit"
dialogs = brackets.getModule "widgets/Dialogs"
defaultDialogs = brackets.getModule "widgets/DefaultDialogs"
workspaceManager = brackets.getModule "view/WorkspaceManager"
sql_display_execute = 'sql-display.execute' # mon entrée dans le menu
panel = {}
appInit.appReady ()->
commandManager.register 'sql-display panel', sql_display_execute, handleSqlDisplay
menu = menus.getMenu menus.AppMenuBar.VIEW_MENU
menu.addMenuItem sql_display_execute
panel = workspaceManager.createBottomPanel 'sql.display.execute', $(require('text!templates/panel.html')), 400
handleSqlDisplay = ()->
log "disp modal box"
console.log panel
console.log panel.isVisible() #always false
# affiche une modal
#dialogs.showModalDialog defaultDialogs.DIALOG_ID_INFO, "database informations", "<p>test</p>"
if panel.isVisible()
#panel.setVisible(false)
panel.hide()
commandManager.get(sql_display_execute).setChecked(false)
else
panel.show()
console.log 'try to show'
#panel.setVisible(true)
commandManager.get(sql_display_execute).setChecked(true)
while( !panel.isVisible)
panel.show()
console.log panel.isVisible()#always false
答案 0 :(得分:0)
不确定这是否是您的真正问题,但此代码永远不会运行:
while( !panel.isVisible)
panel.show()
panel.isVisible
将始终评估为true,因为isVisible是一个函数。你需要括号来实际调用函数;对于零参数函数,它们不是可选的。
答案 1 :(得分:0)
好的我解决了我的问题,如果你没有加载样式表就无法打开底部^^
extensionUtils = brackets.getModule "utils/ExtensionUtils"
extensionUtils.loadStyleSheet(module, "main.css");
有了它,它的工作......
答案 2 :(得分:0)
似乎WorkspaceManager.createBottomPanel中$ panel参数中的html需要一个DOM ID才能使函数正常工作。
panel = WorkspaceManager.createBottomPanel(ID_OF_EXECUTE, $("<div id='some-id' class='bottom-panel'>HTML for my panel</div>"),200);