我最近开始学习backbone和aura并尝试使用这两个应用的简单应用。我有三个小部件,比如A,B和C.现在A和B发布事件(使用sandbox.emit),C订阅它们(使用sandbox.on)。 'A'发表“A.eventA”和'B'发表“B.eventB”说。我尝试从小部件A发布“B.eventB”,它仍然有效。 那么,有没有一种方法可以使用哪些小部件除了自己的事件之外不能发布任何事件? (或者这是允许/预期的行为吗?)
感谢。
答案 0 :(得分:0)
您所询问的是安全性。 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;
});