我最近开始学习骨干和光环,并尝试了一个使用两者的简单应用程序。我有三个小部件,比如 A、B 和 C。现在 A 和 B 发布事件(使用 sandbox.emit),C 订阅它们(使用 sandbox.on)。“A”发布“A.eventA”,“B”发布“B.eventB”。我尝试从小部件 A 发布“B.eventB”,它仍然有效。那么,有没有一种方法可以使用哪些小部件不能发布任何事件,除非有自己的事件?(或者这是允许/预期的行为?)
谢谢。
你问的是安全性。Aura 的设计是有一个处理安全的门面。不是publish
直接打调解员,而是通过门面调用它。外观首先检查您是否有权发布。
这是来自https://gist.github.com/addyosmani/1518268的示例,它显示了subscribe
. 你可以使用类似的东西publish
。
define([ "../aura/mediator" , "../aura/permissions" ],
function (mediator, permissions){
var facade = facade || {};
facade.subscribe = function(subscriber, channel, callback){
// Note: Handling permissions/security is optional here
// The permissions check can be removed
// to just use the mediator directly.
if(permissions.validate(subscriber, channel)){
mediator.subscribe( channel, callback );
}
}
facade.publish = function(channel){
mediator.publish( channel );
}
return facade;
});