我最近开始学习backbone和aura,并尝试了一个使用这两种语言的简单应用程序。我有三个小部件,比如A、B和C。现在A和B发布事件(使用sandbox.emit),C订阅它们(使用sandbox.on)。'A‘发布"A.eventA“,'B’发布"B.eventB”say。我试着从小部件A发布"B.eventB“,它仍然可以工作。那么,有没有一种方法可以让小部件除了自己的事件之外不能发布任何事件呢?(或者这是允许的/预期的行为吗?)
谢谢。
发布于 2013-08-23 02:51:52
你问的是安全问题。Aura的设计是要有一个处理安全性的外观。您可以通过外观调用中介器的publish,而不是直接调用它。facade首先检查您是否有发布的权限。
这里有一个来自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;
});https://stackoverflow.com/questions/16694533
复制相似问题