ui-router-core
Version:
UI-Router Core: Framework agnostic, State-based routing for JavaScript Single Page Apps
43 lines • 1.61 kB
JavaScript
;
/**
* @coreapi
* @module params
*/
/** */
var common_1 = require("../common/common");
/** @internalapi */
var StateParams = (function () {
function StateParams(params) {
if (params === void 0) { params = {}; }
common_1.extend(this, params);
}
/**
* Merges a set of parameters with all parameters inherited between the common parents of the
* current state and a given destination state.
*
* @param {Object} newParams The set of parameters which will be composited with inherited params.
* @param {Object} $current Internal definition of object representing the current state.
* @param {Object} $to Internal definition of object representing state to transition to.
*/
StateParams.prototype.$inherit = function (newParams, $current, $to) {
var parents = common_1.ancestors($current, $to), parentParams, inherited = {}, inheritList = [];
for (var i in parents) {
if (!parents[i] || !parents[i].params)
continue;
parentParams = Object.keys(parents[i].params);
if (!parentParams.length)
continue;
for (var j in parentParams) {
if (inheritList.indexOf(parentParams[j]) >= 0)
continue;
inheritList.push(parentParams[j]);
inherited[parentParams[j]] = this[parentParams[j]];
}
}
return common_1.extend({}, inherited, newParams);
};
;
return StateParams;
}());
exports.StateParams = StateParams;
//# sourceMappingURL=stateParams.js.map