* Push a directive. * * @param {String} dirName * @param {Object|Function} def * @param {Array} [interpTokens]
(dirName, def, interpTokens)
| 7541 | */ |
| 7542 | |
| 7543 | function pushDir(dirName, def, interpTokens) { |
| 7544 | var hasOneTimeToken = interpTokens && hasOneTime(interpTokens); |
| 7545 | var parsed = !hasOneTimeToken && parseDirective(value); |
| 7546 | dirs.push({ |
| 7547 | name: dirName, |
| 7548 | attr: rawName, |
| 7549 | raw: rawValue, |
| 7550 | def: def, |
| 7551 | arg: arg, |
| 7552 | modifiers: modifiers, |
| 7553 | // conversion from interpolation strings with one-time token |
| 7554 | // to expression is differed until directive bind time so that we |
| 7555 | // have access to the actual vm context for one-time bindings. |
| 7556 | expression: parsed && parsed.expression, |
| 7557 | filters: parsed && parsed.filters, |
| 7558 | interp: interpTokens, |
| 7559 | hasOneTime: hasOneTimeToken |
| 7560 | }); |
| 7561 | } |
| 7562 | |
| 7563 | if (dirs.length) { |
| 7564 | return makeNodeLinkFn(dirs); |
no test coverage detected