如何将属性设置为 NavParams 以在 Ionic 中更新 url 路径?
How to set attribute into NavParams for update url path in Ionic?
例如显示URL中选中的单选按钮的值。
URL: [域]/选择器/:值
@IonicPage({
name: 'selector',
section: 'selector/:value'
})
@Component({
template: `
<ion-list radio-group [(ngModel)]="selector">
<ion-item>
<ion-label>First</ion-label>
<ion-radio value="first" checked></ion-radio>
</ion-item>
<ion-item>
<ion-label>Second</ion-label>
<ion-radio value="second"></ion-radio>
</ion-item>
</ion-list>
`
})
class SelectorComponent {
private _value;
get selector() {
return this._value;
}
set value(value) {
this._value = value;
//set :value in url equals current value
}
}
现在,当用户切换按钮时,他应该在 URL 中看到新的 :value。
您可以使用 Ionic Page dynamic links。在您的组件顶部添加 @IonicPage()
装饰器,并使用您的动态值指定一个段。
@IonicPage({
name: 'detail-page',
segment: 'selector/:value'
})
然后你可以像这样推送页面,将你的动态值作为 navParam 传递。
this.navCtrl.push('detail-page', {
'value': detailInfo.value
})
从 3.6 版开始不可用
你可以这样做:
window.history.replaceState('', '', '#/selector/' + value);
// optionally update navCtrl data
this.navCtrl.getActive().data.radioValue = value;
例如显示URL中选中的单选按钮的值。
URL: [域]/选择器/:值
@IonicPage({
name: 'selector',
section: 'selector/:value'
})
@Component({
template: `
<ion-list radio-group [(ngModel)]="selector">
<ion-item>
<ion-label>First</ion-label>
<ion-radio value="first" checked></ion-radio>
</ion-item>
<ion-item>
<ion-label>Second</ion-label>
<ion-radio value="second"></ion-radio>
</ion-item>
</ion-list>
`
})
class SelectorComponent {
private _value;
get selector() {
return this._value;
}
set value(value) {
this._value = value;
//set :value in url equals current value
}
}
现在,当用户切换按钮时,他应该在 URL 中看到新的 :value。
您可以使用 Ionic Page dynamic links。在您的组件顶部添加 @IonicPage()
装饰器,并使用您的动态值指定一个段。
@IonicPage({
name: 'detail-page',
segment: 'selector/:value'
})
然后你可以像这样推送页面,将你的动态值作为 navParam 传递。
this.navCtrl.push('detail-page', {
'value': detailInfo.value
})
从 3.6 版开始不可用
你可以这样做:
window.history.replaceState('', '', '#/selector/' + value);
// optionally update navCtrl data
this.navCtrl.getActive().data.radioValue = value;