ionic-angular
Version:
A powerful framework for building mobile and progressive web apps with JavaScript and Angular 2
174 lines • 5.5 kB
JavaScript
(function (factory) {
if (typeof module === 'object' && typeof module.exports === 'object') {
var v = factory(require, exports); if (v !== undefined) module.exports = v;
}
else if (typeof define === 'function' && define.amd) {
define(["require", "exports", '@angular/core', '../../navigation/deep-linker', '../../navigation/nav-controller'], factory);
}
})(function (require, exports) {
"use strict";
var core_1 = require('@angular/core');
var deep_linker_1 = require('../../navigation/deep-linker');
var nav_controller_1 = require('../../navigation/nav-controller');
/**
* \@name NavPush
* \@description
* Directive to declaratively push a new page to the current nav
* stack.
*
* \@usage
* ```html
* <button ion-button [navPush]="pushPage"></button>
* ```
*
* To specify parameters you can use array syntax or the `navParams`
* property:
*
* ```html
* <button ion-button [navPush]="pushPage" [navParams]="params">Go</button>
* ```
*
* Where `pushPage` and `params` are specified in your component,
* and `pushPage` contains a reference to a
* component you would like to push:
*
* ```ts
* import { LoginPage } from './login';
*
* \@Component({
* template: `<button ion-button [navPush]="pushPage" [navParams]="params">Go</button>`
* })
* class MyPage {
* constructor(){
* this.pushPage = LoginPage;
* this.params = { id: 42 };
* }
* }
* ```
*
* \@demo /docs/v2/demos/src/navigation/
* @see {\@link /docs/v2/components#navigation Navigation Component Docs}
* @see {\@link ../NavPop NavPop API Docs}
*
*/
var NavPush = (function () {
/**
* @param {?} _nav
*/
function NavPush(_nav) {
this._nav = _nav;
if (!_nav) {
console.error('navPush must be within a NavController');
}
}
/**
* @return {?}
*/
NavPush.prototype.onClick = function () {
if (this._nav && this.navPush) {
this._nav.push(this.navPush, this.navParams).catch(function () {
(void 0) /* console.debug */;
});
return false;
}
return true;
};
NavPush.decorators = [
{ type: core_1.Directive, args: [{
selector: '[navPush]'
},] },
];
/** @nocollapse */
NavPush.ctorParameters = function () { return [
{ type: nav_controller_1.NavController, decorators: [{ type: core_1.Optional },] },
]; };
NavPush.propDecorators = {
'navPush': [{ type: core_1.Input },],
'navParams': [{ type: core_1.Input },],
'onClick': [{ type: core_1.HostListener, args: ['click',] },],
};
return NavPush;
}());
exports.NavPush = NavPush;
function NavPush_tsickle_Closure_declarations() {
/** @type {?} */
NavPush.decorators;
/**
* @nocollapse
* @type {?}
*/
NavPush.ctorParameters;
/** @type {?} */
NavPush.propDecorators;
/**
* \@input {Page} The Page to push onto the Nav.
* @type {?}
*/
NavPush.prototype.navPush;
/**
* \@input {any} Parameters to pass to the page.
* @type {?}
*/
NavPush.prototype.navParams;
/** @type {?} */
NavPush.prototype._nav;
}
var NavPushAnchor = (function () {
/**
* @param {?} host
* @param {?} linker
*/
function NavPushAnchor(host, linker) {
this.host = host;
this.linker = linker;
}
/**
* @return {?}
*/
NavPushAnchor.prototype.updateHref = function () {
if (this.host && this.linker) {
this._href = this.linker.createUrl(this.host._nav, this.host.navPush, this.host.navParams) || '#';
}
else {
this._href = '#';
}
};
/**
* @return {?}
*/
NavPushAnchor.prototype.ngAfterContentInit = function () {
this.updateHref();
};
NavPushAnchor.decorators = [
{ type: core_1.Directive, args: [{
selector: 'a[navPush]',
host: {
'[attr.href]': '_href'
}
},] },
];
/** @nocollapse */
NavPushAnchor.ctorParameters = function () { return [
{ type: NavPush, decorators: [{ type: core_1.Host },] },
{ type: deep_linker_1.DeepLinker, decorators: [{ type: core_1.Optional },] },
]; };
return NavPushAnchor;
}());
exports.NavPushAnchor = NavPushAnchor;
function NavPushAnchor_tsickle_Closure_declarations() {
/** @type {?} */
NavPushAnchor.decorators;
/**
* @nocollapse
* @type {?}
*/
NavPushAnchor.ctorParameters;
/** @type {?} */
NavPushAnchor.prototype._href;
/** @type {?} */
NavPushAnchor.prototype.host;
/** @type {?} */
NavPushAnchor.prototype.linker;
}
});
//# sourceMappingURL=nav-push.js.map