2013-05-22 47 views
2

我最近開始學習backboneaura,並試用了一個簡單的應用程序。我有三個小部件,比如說A,B和C.現在A和B發佈事件(使用sandbox.emit),C向它們訂閱(使用sandbox.on)。 'A'發佈「A.eventA」和「B」發佈「B.eventB」說。我嘗試從小工具A發佈「B.eventB」,它仍然有效。 那麼,有沒有辦法使用哪些小部件不能發佈除了自己的事件以外的任何事件? (或者這是否允許/預期的行爲?)骨幹 - 靈氣事件發射

謝謝。

回答

0

你問的是安全。靈氣的設計是有一個處理安全的外觀。直接打中介者的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; 

}); 
+0

謝謝你的回答。 我也遇到了同樣的方法。 – Nachiket