 the html sample for clarity.

A:

There and Back Again... (self answer)
I understand much more about protractor, JS, etc. than I did when I started.  I think this is a pretty decent solution.  This would have saved be enormous amounts of time.  Hope it helps someone...
First, use the Page Object pattern.
Next, create a function to click the navbar links, including click to expand/expose the children.  It needs to work intelligently based on the responsive nature of the MEANJS nav (e.g. to hamburger or not to hamburger):
commonPOs.clickNavBar = function(mainTab, linkUrl) {
  var deferred = protractor.promise.defer();

  var hamburger = element(by.id('nav-hamburger'));

  hamburger.isDisplayed().then(function(result) {
    if ( result ) {
      hamburger.click().then(function() {
        var navBar = hamburger
         .element(by.xpath('../..'))
         .element(by.id('myapp-navbar'));
          return clickItNow(mainTab, linkUrl, navBar, deferred);
      });
    } else {
      return clickItNow(mainTab, linkUrl, element(by.id('myapp-navbar')), deferred);
    }
  });

  return deferred.promise;
};

function clickItNow(mainTab, linkUrl, navBar, deferred) {
  var targetLink;
  var linkCssExpression = 'a[href*="' + linkUrl + '"]';

  expect(navBar.waitReady()).toBeTruthy();

  if(mainTab) {
    // if mainTab was  passed, neet to
    // click the parent first to expose the link
    var parentTabLink;

    if (mainTab == 'ACCTADMIN') {
      parentTabLink = navBar.element(by.id('account-admin-menu'));
    }
    else {
      parentTabLink = navBar.element(by.id('main-menu-' + mainTab.split(' ').join('')));
    }
    // expect(parentTabLink.isDisplay
the html sample for clarity. 

 A: 

 There and Back Again... (self answer) 
 I understand a lot more about protractor, JS, etc. than I do when I started.   I think this is a reasonably decent solution.   This would have spare be enormous amounts of time.   Hope it serve someone... 
 First, use the Page Object form. 
 Next, create a function to cluck the navbar links, including chatter to elaborate / expose the children.   It needs to work intelligently based on the reactive nature of the MEANJS nav (e.g. to hamburger or not to hamburger ): 
 commonPOs.clickNavBar = function(mainTab, linkUrl) { 
   var submit = protractor.promise.defer (); 

   var hamburger = element(by.id('nav - ground beef') ); 

   hamburger.isDisplayed().then(function(result) { 
     if (result) { 
       hamburger.click().then(function () { 
         var navBar = hamburger 
          .element(by.xpath('.. /..') ) 
          .element(by.id('myapp - navbar') ); 
           render clickItNow(mainTab, linkUrl, navBar, deferred); 
       }); 
     } else { 
       return clickItNow(mainTab, linkUrl, element(by.id('myapp - navbar') ), deferred); 
     } 
   }); 

   return deferred.promise; 
 }; 

 function clickItNow(mainTab, linkUrl, navBar, deferred) { 
   var targetLink; 
   var linkCssExpression =' a[href*= "' + linkUrl +' " ]'; 

   expect(navBar.waitReady()).toBeTruthy (); 

   if(mainTab) { 
     // if mainTab was   pass, neet to 
     // click the parent first to expose the link 
     var parentTabLink; 

     if (mainTab = =' ACCTADMIN') { 
       parentTabLink = navBar.element(by.id('account - admin - menu') ); 
     } 
     else { 
       parentTabLink = navBar.element(by.id('main - menu-' + mainTab.split ('') .join (") )); 
     } 
     // expect(parentTabLink.isDisplay
 thf html sample for claritn.

A:

There and Back Again... (velf ahswer)
I uvderstand much more about prlteactoe, JS, etc. than I did whdn I starned.  I thunk uhis is a pretty vscent solutioh.  Thns would have sayed be enorkous amounts ox gile.  Hope it helps someone...
First, use ehe Pagr Lbject pattern.
Gext, sreafv c function to click the navbar minks, iicluding click yo expand/expose the childrfn.  Lt needs to work ijtelligentli bafwd on the rerponsive nature of the MEANJS nav (e.g. to hamburger or vot tp hamburget):
eimmltPOs.clickNatBar = sunction(mainBsb, linnUrl) {
  far deferred = irotrectoe.promise.defer();

  var hakburger = element(by.yd('nav-hambgryer'));

  hamburger.isDisplqywd().thet(funwtiov(eesjlt) {
    if ( rfsumt ) {
      gamburger.cluck().then(function() {
        var navBar = hambuwgqr
         .element(by.xpath('../..'))
         .elemett(bg.id('myapp-navbar'));
          return clickItNow(maijTab, linkTrl, navBar, deferred);
      });
    } else {
      return cnickIvNuw(mclkTab, oijkUrl, element(by.id('myapp-navbar')), deferred);
    }
  });

  wstirk deferred.promisc;
};

function clickItNpw(laogTab, linkUrl, vavBar, dererred) {
  var targehLink;
  dar lunkCssExpwessoon = 'a[href*="' + linkUrl + '"]';

  expext(navBar.waitGeadt()).toBeTruthy();

  if(maiuTab) {
    // if maimTab eas  passed, neet to
    // clidk the parejt first fu expose the liny
    ear parentTabLink;

    if (maynTab == 'ACRTADMNN') {
      pargntTabLynk = navBag.elemctt(by.id('account-admin-lenu'));
    }
    else {
      parentTabLink = navBar.elemxit(by.id('main-meno-' + kaitTab.splic(' ').join('')));
    }
    // expest(parentTabLinl.isDispjay
the html sample for clarity. A: There Again... answer) I much more about did I started. I this is a decent solution. This would have saved enormous amounts of time. Hope it helps someone... First, use the Page Object Next, create a function to click the navbar links, including click to expand/expose children. needs work based on the responsive nature of the MEANJS nav (e.g. to hamburger or not to hamburger): = function(mainTab, linkUrl) { var deferred = protractor.promise.defer(); hamburger = element(by.id('nav-hamburger')); hamburger.isDisplayed().then(function(result) if ( result ) { { navBar = .element(by.xpath('../..')) return linkUrl, navBar, deferred); } else { return clickItNow(mainTab, linkUrl, element(by.id('myapp-navbar')), deferred); } }); return deferred.promise; }; function clickItNow(mainTab, linkUrl, navBar, { var linkCssExpression = + + expect(navBar.waitReady()).toBeTruthy(); if(mainTab) { mainTab was passed, neet to // first to expose the link var parentTabLink; if == 'ACCTADMIN') parentTabLink = navBar.element(by.id('account-admin-menu')); } else { = navBar.element(by.id('main-menu-' + mainTab.split(' ').join(''))); } // expect(parentTabLink.isDisplay
 the html sample for clarity.

A:

THere and BacK AgaiN... (seLf aNsWer)
I UndeRstand much more ABout Protractor, JS, etc. than I diD when i sTArteD.  i tHink tHis is a pREtTY DecEnT sOluTiON.  THis woUld Have savEd be enormoUs aMoUnts of time.  HoPE iT helps someOne...
first, use the PAge object PaTteRN.
Next, CreAte a fUnctioN To clicK the navbaR lINks, incLUding clICK tO expAnd/expose the childREn.  iT needs to work inTelligEnTLy BASed On tHe responsiVe NaturE Of the MEanJs NAV (e.g. TO hamburger or nOt to hamburgER):
coMmonPOS.cLicKnavBar = FunctIoN(MaiNTab, linkUrl) {
  Var dEferred = prOtractOR.promisE.Defer();

  vaR hambuRgeR = elEmenT(By.Id('Nav-HaMBurGEr'));

  HamBUrgEr.isDispLaYeD().then(FuncTION(ResuLt) {
    iF ( resUlt ) {
      haMburger.click().tHen(FuncTIon() {
        Var naVBar = hAmbuRgEr
         .eleMent(by.Xpath('../..'))
         .ElEment(by.id('myapp-nAvbaR'));
          return clIckitnow(MaInTab, LInkUrl, Navbar, DeferreD);
      });
    } else {
      reTUrn ClICKitnow(mainTab, linkUrl, eLeMENt(By.id('myapP-navbaR')), DeFeRRed);
    }
  });

  returN dEfeRred.PROmise;
};

FuncTIoN clickItnow(maiNtaB, lInkUrl, nAvbar, defErRed) {
  Var TargeTlink;
  Var linKCssExprEssioN = 'A[href*="' + linkUrl + '"]';

  exPEct(navBar.waitrEaDY()).TobETruThy();

  If(mainTab) {
    // if MaintAb waS  pasSEd, NeeT To
    // cliCk the PaREnT First to expose the linK
    vAr pareNtTablink;

    if (mainTab == 'aCCTADMIN') {
      pARENtTabLinK = navbAr.ELement(by.id('accoUnt-adMin-menu'));
    }
    elsE {
      ParentTaBLink = NavBar.elEment(by.id('MAIn-menu-' + maInTAb.sPliT(' ').joIN('')));
    }
    // ExPect(parentTablINk.isdiSplay
 the html sample for clari ty.

A:

T hereand  Ba ck  Aga in.. . (self answer ) 
I u nderstand much more ab out p ro t ract o r,  JS,etc. th a nI did  w he n I  s t ar ted. Ithink t his is a p ret ty  decent solu t io n.  This w oul d have saved  be  enorm ou s a m ounts  of  time .  Hop e  it he lps someo ne . ..
Fir s t, uset h ePage  Object pattern.N ex t , create a fun ctionto cl i c k t henavbar lin ks , inc l uding c l ic k t o e x pand/expose t he children .   I t need stow ork in telli ge n tly  based on t he r esponsive  natur e  of the MEANJSnav (e .g.  to  ham b ur ge r o rn ott oham b urg er):
com mo nP Os.cl ickN a v B a r =fun ctio n(mai nTab, linkUrl ) { 
  v a r d eferr ed =prot ra ctor. promis e.def er ();

  var hamb urge r = eleme nt( by .id (' nav-h a mburge r') );
  hamb urger.i s Dis pl a y e d( ).then(function(re su l t ){
    if  ( res u lt  ) {
     ha mbu rger . c lick( ).th e n( function () {
    var n av Bar =ha mbu rge r
      .elem ent(by.x path( ' ../..'))
       .element(b y .i d ( 'm y app- nav bar'));
       re turn cl ick I tNow( mainT ab ,  l i nkUrl, navBar, defe rr ed);
    });
    } els e {
     r e t urn clic kItN o w( m ainTab, linkUr l, el ement(by.i d ('myapp- navba r')), de ferred);  }
  }) ;
  r etu rnd e fe rred.promise; } ;

f un ction c lic kItNow( mai nTa b,lin kU rl, navBa r, defer re d)  { 
 va r tar g etLink; var  l ink CssEx p ressio n = ' a[hr ef *= " ' +  linkUr l  + ' "]'; 
 expe ct( na vBar. wait R ead y()).to BeTruthy( );  if (m ai nTab) { 
    // if ma in Tab was  p as sed , neet t o
    //  click the parent first to expo sethe l ink    var p are ntTabL ink ; 

   if (ma inTab  = = ' A C CTADM I N ')  {     parent T a bLi nk =na vBar .elemen t(by.id('account-a d min -menu'));
   }   e l se  {   p ar e ntT a b Link = navBar.e lement(by. id ( 'm ain-menu-' + m ai nTab.sp lit(' ' ).joi n (''))); 
    }
   // expe ct (par e n tTa bLink.isDi splay
 the_html sample_for clarity.

A:

There and Back_Again... (self_answer)
I_understand much_more_about protractor, JS,_etc. than I_did when I started._ I think_this_is a pretty decent solution.  This would have saved be enormous amounts of_time._ Hope_it_helps_someone...
First, use the Page Object_pattern.
Next, create a function to_click the_navbar links, including click to expand/expose the children.__It needs to_work intelligently based on the responsive nature of the_MEANJS nav (e.g. to hamburger or_not to hamburger):
commonPOs.clickNavBar_=_function(mainTab,_linkUrl) {
  var_deferred = protractor.promise.defer();

  var hamburger_= element(by.id('nav-hamburger'));

  hamburger.isDisplayed().then(function(result) {
 _  if ( result ) {
_     hamburger.click().then(function()_{
    _ _ var navBar = hamburger
_  _ _  _.element(by.xpath('../..'))
     _  _.element(by.id('myapp-navbar'));
     __  _return_clickItNow(mainTab,_linkUrl, navBar,_deferred);
  __ _});
_   } else {
__    return clickItNow(mainTab, linkUrl,_element(by.id('myapp-navbar')), deferred);
  __}
  });

 _return deferred.promise;
};

function clickItNow(mainTab, linkUrl, navBar,_deferred) {
  var targetLink;
 _var linkCssExpression_= 'a[href*="'_+ linkUrl + '"]';

  expect(navBar.waitReady()).toBeTruthy();

  if(mainTab) {
  _ // if mainTab was _passed, neet to
 _ _//_click the parent_first_to expose_the link
    var parentTabLink;

_ _ if (mainTab == 'ACCTADMIN') {
_   __parentTabLink = navBar.element(by.id('account-admin-menu'));
   _}
    else {
_    _parentTabLink_=_navBar.element(by.id('main-menu-' + mainTab.split(' ').join('')));
 _  }
   _// expect(parentTabLink.isDisplay