Javascript 离子2-navPush由于某种原因不起作用
导航按钮停止工作了,我真的不知道为什么。它也不能与这个.nav.push()一起工作。我尝试了更多的按钮,导航按钮,我真的不明白为什么不工作 html文件Javascript 离子2-navPush由于某种原因不起作用,javascript,angularjs,ionic-framework,ionic2,Javascript,Angularjs,Ionic Framework,Ionic2,导航按钮停止工作了,我真的不知道为什么。它也不能与这个.nav.push()一起工作。我尝试了更多的按钮,导航按钮,我真的不明白为什么不工作 html文件 <ion-header> <ion-toolbar color="danger"> <ion-title> {{ nombreLista }} </ion-title> <ion-buttons end [navPu
<ion-header>
<ion-toolbar color="danger">
<ion-title>
{{ nombreLista }}
</ion-title>
<ion-buttons end
[navPush]="home"
[navParams]="DataLista">
<button ion-button icon-only color="white">
Home <ion-icon name="ios-arrow-forward"></ion-icon>
</button>
</ion-buttons>
</ion-toolbar>
</ion-header>
<ion-content padding>
<ion-list *ngFor="let lista of listaFinal">
<ion-list-header *ngIf="lista.articulos.length > 0"> Pasillo {{lista.pasillo}} </ion-list-header>
<ion-item-sliding *ngFor="let articulo of lista.articulos">
<ion-item>{{articulo}}</ion-item>
<ion-item-options side="right">
<button ion-button expandable
(click)="onDelete(articulo)"
color="danger"
><ion-icon name="md-trash"></ion-icon>Borrar</button>
</ion-item-options>
</ion-item-sliding>
</ion-list>
<button (click)="onPush()">
<ion-icon name="add"></ion-icon>
</button>
<ion-fab bottom right>
<button ion-fab mini
color="danger"
[navPush]="elegirItem"
[navParams]="DataLista">
<ion-icon name="add"></ion-icon>
</button>
</ion-fab>
</ion-content>
{{nombreLista}}
家
帕西洛{{lista.Pasillo}
{{articulo}}
博拉尔
ts文件
import {Component, OnInit} from '@angular/core';
import { NavController, NavParams } from 'ionic-angular';
import {HomePage} from "../home/home";
import { ElegiritemsPage } from "../elegiritems/elegiritems";
@Component({
selector: 'page-lista-terminada',
templateUrl: 'lista-terminada.html',
})
export class ListaTerminadaPage implements OnInit{
home=HomePage;
elegirItem = ElegiritemsPage;
nombreLista;
listaFinal : {pasillo: number, articulos:string []}[];
DataLista;
constructor(public navCtrl: NavController, public navParams: NavParams) {
}
ngOnInit(){
this.DataLista = this.navParams.data;
this.listaFinal = this.navParams.get('listaOrden');
this.nombreLista = this.navParams.get('listaNombre');
this.DataLista.listaActiva = this.listaFinal;
}
//recibe un articulo y recorre el arreglo, en caso de ser iguales, se elimina
onDelete(articulo) {
for (var i = 0; i < this.listaFinal.length; i++) {
for (var x = 0; x < this.listaFinal[i].articulos.length; x++) {
if (this.listaFinal[i].articulos[x] === articulo) {
this.listaFinal[i].articulos.splice(x, 1)
}
}
}
this.DataLista.listaActiva = this.listaFinal;
}
onPush(){
console.log('jose');
this.navCtrl.push(this.elegirItem);
}
}
从'@angular/core'导入{Component,OnInit};
从“离子角度”导入{NavController,NavParams};
从“./home/home”导入{HomePage};
从“./elegirtems/elegirtems”导入{elegirtemspage};
@组成部分({
选择器:'page lista terminada',
templateUrl:'lista terminada.html',
})
导出类LisaterMinAdapage实现OnInit{
主页=主页;
elegirItem=ElegiritemsPage;
诺姆布雷利斯塔;
listaFinal:{pasillo:number,articulos:string[]}[];
数据列表a;
构造函数(公共navCtrl:NavController,公共navParams:navParams){
}
恩戈尼尼特(){
this.DataLista=this.navParams.data;
this.listaFinal=this.navParams.get('listaOrden');
this.nombreLista=this.navParams.get('listaNombre');
this.DataLista.listaActiva=this.listaFinal;
}
//在埃利米纳东南部的伊瓜莱斯之家里,有一座艺术建筑
onDelete(articulo){
for(var i=0;i
ElegirItems.html
<ion-header>
<ion-toolbar color="danger">
<ion-title>
{{nombreLista}}
</ion-title>
<ion-buttons end>
<button ion-button
clear color="white"
(click)="onOrganizaLista()"
[navPush]="listaTerminada"
[navParams]="DataLista">LISTO</button>
</ion-buttons>
</ion-toolbar>
</ion-header>
<ion-content padding class="backgroundd">
<ion-searchbar (ionInput)="getItems($event)">
</ion-searchbar>
<ion-list>
<ion-item *ngFor="let articulo of listaProductos">{{articulo.nombre}}
<button ion-button icon-only
item-end clear color="danger"
(click)="onItemSelect(articulo)"
><ion-icon [name]="articulo.estado ===0 ? addBoton : remBoton" ></ion-icon></button>
</ion-item>
</ion-list>
</ion-content>
{{nombreLista}}
利斯托
{{articulo.nombre}}
elegiritems.ts
import {Component, OnInit} from '@angular/core';
import { NavParams } from 'ionic-angular';
import {HomePage} from "../home/home";
import {ListaTerminadaPage} from "../lista-terminada/lista-terminada";
import {Articulo} from "../../Data/articulo.interface";
import Organizador from '../../Data/Organizador';
@Component({
selector: 'page-elegiritems',
templateUrl: 'elegiritems.html',
})
export class ElegiritemsPage implements OnInit{
home=HomePage;
listaTerminada=ListaTerminadaPage;
listaProductos :Articulo[]=[];
productosElegidos: Articulo[] =[];
listaOrdenada : {pasillo: number, articulos:string[]}[];
nombreLista:string ='';
addBoton='ios-add-circle';
remBoton ='md-close';
DataLista;
constructor(public navParams: NavParams) {
}
ngOnInit(){
this.DataLista = this.navParams.data;
this.listaProductos = this.navParams.get('articulos');
this.nombreLista = this.navParams.get('listaNombre')
}
//Resetea el valor de la Lista ordenada, la cual es reducida en la pag siguiente, al volver atras le da el valor inicial
ionViewCanEnter(){
this.listaOrdenada = Organizador;
this.productosElegidos = this.navParams.get('listaActiva');
this.onActivos();
console.log(this.productosElegidos);
}
//Inicia una funcion dependiendo de si pertenece o no a la lista de productos elegidos
onItemSelect(articulo:Articulo){
if (articulo.estado === 0) {
this.onAddProduct(articulo);
articulo.estado = 1;
return
}
if (articulo.estado === 1)
{
this.onDeleteProduct(articulo);
articulo.estado=0;
return
}
}
//resetea los valores de estado de la lista de productos y a los valores activos los deja en estado 1
onActivos(){
for (var i =0; this.listaProductos.length; i++){
this.listaProductos[i].estado=0;
}
for (var x = 0; this.productosElegidos.length; x++){
this.productosElegidos[x].estado = 1;
}
}
//Agrega el articulo a la lista de productos elegidos
onAddProduct(articulo: Articulo) {
console.log(articulo);
this.productosElegidos.push(articulo);
console.log(this.productosElegidos);
}
//Elimina el articulo de la lista de productos elegidos
onDeleteProduct(articulo: Articulo){
const position = this.productosElegidos.findIndex((articuloEl:Articulo) =>{
return articuloEl.nombre == articulo.nombre
});
this.productosElegidos.splice(position,1)
}
//Revisa si el articulo seleccionado forma parte del arreglo de los productos elegidos, tambien cambia el icono
//NO IMPLEMENTADO
onChecked(articulo){
for (var i =0; i < this.listaProductos.length; i++) {
if (this. listaProductos[i].nombre === articulo.nombre){
return true
}
}
return false
}
//Agrega los articulos a una lista ordenada que obtiene desde la basa de datos, esta esta organizada por pasillos
onOrganizaLista(){
for (var i =0; i < this.listaOrdenada.length; i++) {
for (var x =0 ; x < this.productosElegidos.length; x++){
if (this.listaOrdenada[i].pasillo == this.productosElegidos[x].pasillo){
this.listaOrdenada[i].articulos.push(this.productosElegidos[x].nombre)
}
}
x=0;
}
//Alimenta el arreglo para tener el nombre y la lista ordenada
this.DataLista.listaOrden = this.listaOrdenada;
}
//Funcionalidad de la barra de busqueda, codigo de ionicDocs adecuado
getItems(ev:any){
this.listaProductos = this.navParams.get('articulos');
let val = ev.target.value;
if (val && val.trim() != ''){
this.listaProductos = this.listaProductos.filter((item: any) => {
return (item.nombre.toLowerCase().indexOf(val.toLowerCase()) > -1);
})
}
}
}
从'@angular/core'导入{Component,OnInit};
从“离子角度”导入{NavParams};
从“./home/home”导入{HomePage};
从“./lista terminada/lista terminada”导入{LISTATERMINADAGE};
从“../../Data/Articulo.interface”导入{Articulo}”;
从“../../Data/Organizador”导入Organizador;
@组成部分({
选择器:“页面项目”,
templateUrl:'elegiritems.html',
})
导出类ElegiritemsPage实现OnInit{
主页=主页;
listaTerminada=ListaTerminadaPage;
listaProductos:Articulo[]=[];
productosElegidos:Articulo[]=[];
listaOrdenada:{pasillo:number,articulos:string[]}[];
nombreLista:string='';
addBoton='ios-add-circle';
remBoton='md-close';
数据列表a;
构造函数(公共navParams:navParams){
}
恩戈尼尼特(){
this.DataLista=this.navParams.data;
this.listaProductos=this.navParams.get('articulos');
this.nombreLista=this.navParams.get('listaNombre')
}
//重新设定项目的价值,降低项目的价值,并将项目的价值转化为具体的价值
ionViewCanEnter(){
this.listaOrdenada=组织机构;
this.productosElegidos=this.navParams.get('listaActiva');
这个。onActivos();
console.log(this.productosElegidos);
}
//功能是否依赖于电气产品清单
onItemSelect(articulo:articulo){
如果(articulo.estado==0){
本品(articulo);
articulo.estado=1;
返回
}
if(articulo.estado==1)
{
本品(articulo);
articulo.estado=0;
返回
}
}
//重新设置1号项目的产品和活动价格
onActivos(){
for(var i=0;this.listaProductos.length;i++){
this.listaProductos[i].estado=0;
}
对于(var x=0;this.productosElegidos.length;x++){
this.productosElegidos[x].estado=1;
}
}
//电子产品目录
ONADD产品(articulo:articulo){
控制台日志(articulo);
这个.productosElegidos.push(articulo);
console.log(this.productosElegidos);
}
//Elimina el articulo de la lista de productos elegidos
onDeleteProduct(articulo:articulo){
const position=this.productosElegidos.findIndex((articuloEl:Articulo)=>{
return articuloEl.nombre==articulo.nombre
});
此.productosElegidos.splice(位置1)
}
//修订柬埔寨电力生产部门的劳动形式
//不需要
一次检查(关节){
for(var i=0;i{
返回(item.nombre.toLowerCase().indexOf(val.toLowerCase())>-1);
})
}
}
}
这是因为您没有传递有效的导航参数,并且目标组件具有ionViewCanEnter
,需要listaActiva
才能让视图进入
在this.navCtrl.push(this.elegirItem)中传递有效的导航参数有限公司