标签: ionic2

ngFor 在删除项目时不更新

我在页面模板(Ionic 2)中使用 *ngFor 。

<div class="child" *ngFor="let child of sharedParams.children">
        ...
</div>
Run Code Online (Sandbox Code Playgroud)

在应用程序内部的某个地方,我会在检测到更改(添加、更新、删除)时更新 children 数组。我这样做是为该属性分配一个新数组:

export class SharedParams {    
    private _children: Child[];

    constructor(children: Child[]){
        this._children = children;
    }

    get children(){
        return this._children;
    }

    set children(children: Child[]){        
        this._children = children;
    }
}
Run Code Online (Sandbox Code Playgroud)

当在数组中添加或更新项目时,会触发 ngFor 并更新 DOM。然而,当一个项目被移除时,数组会改变,但 DOM 不会移除该项目的条目。

我还尝试使用“push”和“splice”手动修改数组而不是替换它。但行为保持名称。当一个项目被移除时,DOM 永远不会更新。

任何帮助将不胜感激。

ionic2 angular

6
推荐指数
1
解决办法
5979
查看次数

Sidemenu和Modals的动画比自己的动画更快

从底部(Ionic2 Modal)向外和向下的侧面菜单或向上滑动模式盒的动画非常快速和平滑.

现在我为浮动动作按钮定义了自己的动画.这个动画比离子动画要慢很多.有什么不同?

为什么我的动画有点滞后?

animations: [
    trigger('heroState', [
      state('false', style({
        right: '-500px',
      })),
      state('true',   style({
        right: '0px',
      })),
      transition('false => true', animate('500ms ease-in')),
      transition('true => false', animate('500ms ease-out'))
    ])
  ],
Run Code Online (Sandbox Code Playgroud)

ionic-framework ionic2 angular

6
推荐指数
1
解决办法
140
查看次数

main.worker.js?那是什么?

我正在使用Mozilla PDF Viewer在Ionic 2中构建PDF查看器,但遇到了问题.我pdf.js按照这些说明建造了.生成的代码包括以下行:

GET http://localhost:8100/build/main.worker.js

Chrome在这一行上抱怨无法找到该文件pdf.worker.js.

现在,我之前没有遇到过网络工作者,所以我不确定这个错误意味着什么,或者在哪里找到或构建这个文件.我注意到构建过程也会产生一个名为的文件main.worker.js,我怀疑这可能是它之后的文件,尽管将其重命名为pdf.js无效.

如果你知道的话,我相信这是一个非常简单的问题.我错过了什么?


好的,经过多一点挖掘,我发现这更符合我的情况.我正在使用Ionic 2,我不知道如何生成此行中引用的文件:

GET http://localhost:8100/build/main.worker.js

任何人都可以照亮我的黑暗心灵吗?

pdf pdf.js ionic-framework ionic2 angular

6
推荐指数
0
解决办法
816
查看次数

如何返回一个空的observable

根据这个答案如何在rxjs中返回一个空的observable我已经尝试了所有它但它对我不起作用

这是我的代码

post(url):Observalbe<any>{
   if(this.holder.nullConnection()){ //checking internet connection
      //return empty observalbe
      return Observable.empty() ;
    }else{
      return this.http.post(this.configurator.restServerBaseUrl+url,data)
      .map((result:Response)=> {
        return result.json()
      })
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试了几乎所有的答案,你可以看到上面的堆栈问题任何帮助返回一个空洞的想法.

observable ionic2 angular

6
推荐指数
1
解决办法
8470
查看次数

当按下按钮时,Ionic2关闭fab菜单

如果按下菜单中的按钮,如何关闭打开的FAB菜单?

这是我的按钮.

<ion-fab bottom center >
<button ion-fab><b>Hello</b></button>
<ion-fab-list side="top">
<button ion-fab (click)="refresh()"><ion-icon name="refresh"></ion-icon></button>
Run Code Online (Sandbox Code Playgroud)

refresh为了让整个FAB关闭,我需要添加什么?我可以以某种方式从代码中引用html对象吗?类似于iOS处理它的出口的方式?

floating-action-button ionic2 angular

6
推荐指数
1
解决办法
3062
查看次数

angularfire2增加值的最佳方法?

我搜索了许多论坛,问题,在doc但找不到正确的解决方案.

问题

使用angularfire2增加值的最佳方法是什么?
我看到我们可以使用[transaction()] []但实际上并不适用于angularfire2.还是快照?

user.service.ts

incrementLike(userToIncrementLike){
    this.af.database.object('users/' + userToIncrementLike.uid).subscribe((userObject) => {
      var newUser = {
        likes: userObject.likes + 1
        };

     });
     this.af.database.object('users/' + userToIncrementLike.uid).update(newUser);

  }
Run Code Online (Sandbox Code Playgroud)

我也试过这种方式:

incrementLike(userToIncrementLike){

    let obs = this.af.database.object('users/' + userToIncrementLike.uid);
    obs.subscribe((snapshot) => {
      let newValue = (snapshot.$value) ? (snapshot.$value + 1) : 1;
      obs.set(newValue);
    });
  }
Run Code Online (Sandbox Code Playgroud)

非常感谢你的帮助和提示:)路易斯.

firebase ionic2 angular2-services angularfire2 angular

6
推荐指数
3
解决办法
3157
查看次数

在Ionic 2 for Android中为推送通知放置自定义声音文件的位置

我在我的Ionic 2应用程序中使用推送插件.现在我想使用自定义声音文件.

我在我的有效载荷中发送文件名:

options = {data: {title: "Title", body: 'Body.', soundname: 'soundfile'}}
Run Code Online (Sandbox Code Playgroud)

但现在我不知道将声音文件放在我的Ionic项目中的哪个位置.

我应该把它放入res/raw.但这是在我的平台文件夹中吗?有人能告诉我从根目录开始的正确路径吗?

android cordova ionic-framework ionic2

6
推荐指数
1
解决办法
2161
查看次数

如何在ionic2中管理web2应用程序中的多个滑块?

幻灯片我有这样的HTML

<ion-slides   [pager]="false" slidesPerView="6" #slider_a>
        <ion-slide  *ngFor="let slide of  items_a " #ddd>
            <ion-card class="list-card" >
                <div class="cardInnerWrap">
                    <ion-item>
                      {{slide.gameTitle}}
                    </ion-item>
                     <img src="{{slide.gameImage}}">

                </div>
            </ion-card>
        </ion-slide>
</ion-slides>

<ion-slides   [pager]="false" slidesPerView="6" #slider_b>
        <ion-slide  *ngFor="let slide of  items_b " #ddd>
            <ion-card class="list-card" >
                <div class="cardInnerWrap">
                    <ion-item>
                      {{slide.gameTitle}}
                    </ion-item>
                     <img src="{{slide.gameImage}}">

                </div>
            </ion-card>
        </ion-slide>
</ion-slides>
Run Code Online (Sandbox Code Playgroud)

它在移动设备上工作.问题是当我在Firefox中拖动幻灯片2时(也在Chrome中),幻灯片1也被拖动了.不能单独拖动幻灯片2.如何在离子2中制作2个完全独立的滑块,可在浏览器中使用

javascript typescript ionic2 ionic3 angular

6
推荐指数
1
解决办法
2444
查看次数

如何在Ionic 2中将数据传回我的根页?

我有一个Ionic 2应用程序.该应用程序的前提是上课.打开一个类后,用户将被标记为在远程API中使用此类.

数据流是:

  1. 用户打开"类"选项卡.
  2. 应用程序从API请求"类"数据.每个班级都为该用户保留"状态".
  3. 用户选择一个班级.这将在应用程序中打开一个新视图NavController.push(Page, { 'classes': classObjFromApi });.
  4. 堆栈中添加了几个页面,每个页面都classes传递了对象.
  5. 在最后一页上,API被告知已经获取当前类,并且用户可以使用导航回root NavController.popToRoot()

在根页面上显示每个类的状态('未启动','正在进行','已完成').在上面的流程中的第5点,用户被带回到根,但是它具有来自最初构建时的数据,这表示该类为"未启动",即使它现在已经"完成".

如何从堆栈中的其他页面更新根页面上的数据?我原以为popToRoot()会接受navParams所以我可以检查根页中是否存在该数据,如果存在则使用它,如果不存在则请求API.

我可以通过从ionViewDidEnter方法上的API重新请求数据来解决这个问题,但这意味着每次用户查看此页面时都会发出API/HTTP请求,即使应用程序具有数据.看起来很乱.

如果我能帮助它,我宁愿不使用内部存储,因为它在加载页面时会产生延迟,因为我必须等待数据在显示之前从存储中提取.

所以我的问题是:最好的方法是什么?如果要将数据传递给视图,如果popToRoot()不支持nav params ,我该怎么做?

typescript ionic-framework ionic2 ionic3 angular

6
推荐指数
1
解决办法
988
查看次数

如何使用ion-col设置响应的大型动态表数据

在这里我面临着一个与ion-col相关的问题,我将我的动态数据绑定到离子行并在离子列中显示数据,这里表格很大,它正在切断,下面不稳定的宽度是我的鳕鱼

<ion-grid class="contnr">
      <ion-row style="" class="grid-head">
        <ion-col width-40>
          Transaction
        </ion-col>
        <ion-col width-40>
          Count
        </ion-col>
        <ion-col width-40 >
         Overall  Gross Amount
        </ion-col>
        <ion-col width-40 >
          Overall Disc
        </ion-col>
        <ion-col  width-40>
          Overall Tax
        </ion-col >
        <ion-col  width-40>
         Overall ServiceTax
        </ion-col>
        <ion-col  width-40>
         Overall Charge
        </ion-col>
        <ion-col  width-40>
          Overall Net
        </ion-col>
      </ion-row>
      <ion-row *ngFor="let value of resultData" style="background:#eff0f1" class="cont-rows">

        <ion-col width-40>
          {{value.TransacType}}
        </ion-col>
        <ion-col width-40>
          {{value.Transactions}}
        </ion-col>
        <ion-col width-40>
          {{value.Count}}
        </ion-col>
        <ion-col width-40>
          {{value.OverallSales}}
        </ion-col>
        <ion-col width-40>
          {{value.Discount}}
        </ion-col>
        <ion-col width-40>
          {{value.OverallTax}}
        </ion-col> …
Run Code Online (Sandbox Code Playgroud)

typescript ionic-framework ionic2 ionic3 angular

6
推荐指数
1
解决办法
3397
查看次数