title: Apostrophe pageBeforeSend : extended data is lost after editing widget
body: <p>I'm currently discovering Apostrophe and try to create a widget</p>
  
  <p>I woulkd like to append external data to the data comming from mongo fields
  As stated in the tutorials, i use <code>pageBeforeSend</code> (and 'super' pattern)</p>
  
  <p>It works. My exernal datas are available in the nunjucks (through a <code>apos.area</code>) and i can use it !</p>
  
  <p>But, if i edit my widget to modifiy somme 'mongo' fields, when back, the <code>pageBeforeSend</code> is not called and i do not have my external datas. If then refreshing the whole page, it will all be coming back up again.</p>
  
  <p>my question : Is the <code>pageBeforeSend</code> the good approach to append external datas and how to force a widget to call pageBeforeSend (or whatever) when it exits its editing mode so that the external datas can be again available ?</p>
  
  <p>my code : (the <code>data.my_extended</code> will be an array of objects at the end)</p>
  
  <pre><code>construct: function(self, options) {
      let superPageBeforeSend = self.pageBeforeSend;
      self.pageBeforeSend = function(req) {
          req.data.my_extended = 'some extra information not in fields';
          return superPageBeforeSend(req, function() {
            req.data.my_extended = 'some extra information for testing';
          });
      };
  </code></pre>
  
  <p>Thanks in advance</p>