在Chaplin js框架内,这些事件的前缀是什么!意思?

set*_*thp 5 javascript event-handling coffeescript backbone.js chaplinjs

我在章节示例代码中看到了这些事件,但文档或源代码中没有任何解释.似乎这意味着它是一个全局事件,触发一个动作.那是对的吗?它们只是一种惯例,还是以某种方式强制执行?

# Handle login
@subscribeEvent 'logout', @logout
@subscribeEvent 'userData', @userData

# Handler events which trigger an action

# Show the login dialog
@subscribeEvent '!showLogin', @showLoginView
# Try to login with a service provider
@subscribeEvent '!login', @triggerLogin
# Initiate logout
@subscribeEvent '!logout', @triggerLogout
Run Code Online (Sandbox Code Playgroud)

js-*_*der 4

引用自关于同一问题的 GitHub 问题

!logout更多的是模块间消息或命令。它允许一个模块触发注销(例如带有注销按钮的视图)。然后,实际的注销过程由另一个模块(例如会话控制器)处理。例如,该模块使服务器上的会话无效。成功时,它会发出一个logout 事件,这意味着logout已经发生了。所有对登录/注销感兴趣的模块都应该订阅logout.

我认为这很好地解释了这一点。基本上,该!事件在启动操作时触发,而正常事件在操作成功时触发。