标签: ionic3

如何解决"错误:未捕获(承诺):错误:没有提供"Ionic 3中的错误

我正在学习Ionic 3,当我尝试制作一个检查唯一用户名的自定义验证器时,我遇到了这个错误.我尽我所能但无法解决这个问题.

CustomValidators.ts

import { Directive, Input } from '@angular/core';

import { FormControl, Validator, AbstractControl } from '@angular/forms';
import { Http, Response, Headers, RequestOptions } from '@angular/http';
import {Observable} from 'rxjs/Rx';

export class CustomValidators {


    constructor(public http: Http){}

      public hasUniqueEmail(
        control: FormControl,
      ){

        return this.http.get('assets/users.json')
        .map(res => res.json())
        .catch((error:any) => Observable.throw(error.json().error || 'Server error'));

      }


}
Run Code Online (Sandbox Code Playgroud)

signup.ts

import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { FormBuilder, FormGroup,  Validators } from '@angular/forms';
import …
Run Code Online (Sandbox Code Playgroud)

javascript ionic3 angular

13
推荐指数
1
解决办法
3万
查看次数

如何在PWA中更新服务工作者缓存?

我使用带有sw-toolbox库的服务工作者.我的PWA缓存除API查询(图像,css,js,html)之外的所有内容.但是如果某些文件有一天会被改变怎么办呢.或者如果将更改service-worker.js会怎样.应用程序应该如何知道文件的变化?

我的service-worker.js:

'use strict';
importScripts('./build/sw-toolbox.js');

self.toolbox.options.cache = {
  name: 'ionic-cache'
};

// pre-cache our key assets
self.toolbox.precache(
  [
    './build/main.js',
    './build/main.css',
    './build/polyfills.js',
    'index.html',
    'manifest.json'
  ]
);

// dynamically cache any other local assets
self.toolbox.router.any('/*', self.toolbox.cacheFirst);

// for any other requests go to the network, cache,
// and then only use that cached resource if your user goes offline
self.toolbox.router.default = self.toolbox.networkFirst;
Run Code Online (Sandbox Code Playgroud)

我不知道在PWA中更新缓存的常用方法是什么.也许PWA应该在后台发送AJAX请求并检查UI版本?

javascript service-worker sw-toolbox ionic3

13
推荐指数
1
解决办法
8370
查看次数

ionic3 android状态栏没有显示图标

当我更新我的项目离子版本时,Android应用程序的状态栏在进入应用程序时无法显示任何图标:

在此输入图像描述

进入app时:

在此输入图像描述

谁知道怎么解决?我的信息:

cli packages: (/usr/local/lib/node_modules)

@ionic/cli-utils  : 1.17.0
ionic (Ionic CLI) : 3.17.0
Run Code Online (Sandbox Code Playgroud)

全球套餐:

cordova (Cordova CLI) : 7.1.0 
Run Code Online (Sandbox Code Playgroud)

本地包裹:

@ionic/app-scripts : 3.0.1
Cordova Platforms  : android 6.3.0 ios 4.6.0-nightly.2017.11.22.24bfb734
Ionic Framework    : ionic-angular 3.8.0
Run Code Online (Sandbox Code Playgroud)

系统:

ios-deploy : 1.9.2 
ios-sim    : 5.0.13 
Node       : v7.10.0
npm        : 5.5.1 
OS         : macOS Sierra
Xcode      : Xcode 9.0.1 Build version 9A1004 
Run Code Online (Sandbox Code Playgroud)

环境变量:

ANDROID_HOME : not set
Run Code Online (Sandbox Code Playgroud)

其他:

backend : legacy
Run Code Online (Sandbox Code Playgroud)

android statusbar cordova ionic3 angular

13
推荐指数
3
解决办法
5311
查看次数

离子cordova在PANIC中运行android结果:缺少'x86'CPU的模拟器引擎程序

经过大量搜索后,我运行时无法解决此错误:

ionc cordova run android -ls

OUTPUT:

ANDROID_HOME=/Users/lucianokrebs/Library/Android/sdk
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home
No target specified and no devices found, deploying to emulator        
No emulator specified, defaulting to Nexus_5_API_P

Waiting for emulator to start...

PANIC: Missing emulator engine program for 'x86' CPU.
Run Code Online (Sandbox Code Playgroud)

而模拟器永远不会启动

另外,当我跑:

$ ${ANDROID_SDK_ROOT}/tools/emulator -avd my-custom-avd

我有: PANIC: Missing emulator engine program for 'x86' CPU.

但是,当我跑:

$ ${ANDROID_SDK_ROOT}/emulator/emulator -avd my-custom-avd

模拟器启动并正常工作

似乎cordova在尝试启动模拟器时设置了错误的路径.有人已经处理过了吗?

ionic info:
    cli packages: (/usr/local/lib/node_modules)
    @ionic/cli-utils  : 1.19.2
    ionic (Ionic CLI) : 3.20.0

global packages:

    cordova (Cordova CLI) …
Run Code Online (Sandbox Code Playgroud)

android cordova ionic-framework ionic3

13
推荐指数
2
解决办法
9788
查看次数

TypeError:Object(...)不是函数

使用ionic3,angularfire2 v5

TypeError:Object(...)不是SwitchMapSubscriber._next上的SwitchMapSubscriber.project(http:// localhost:8100/build/vendor.js:73935:76)的函数(http:// localhost:8100/build/vendor.js:61778:27)在SwitchMapSubscriber.Subscriber.next(http:// localhost:8100/build/vendor.js:20750:18)的RefCountSubscriber.Subscriber._next(http:// localhost:8100/build/vendor.js:20786:26)在Subject.next(http:// localhost:8100/build/vendor)的RefCountSubscriber.Subscriber.next(http:// localhost:8100/build/vendor.js:20750:18). js:23237:25)在ConnectableSubscriber.Subscriber._next(http:// localhost:8100/build/vendor.js:20786:26)的ConnectableSubscriber.Subscriber.next(http:// localhost:8100/build/vendor. js:20750:18)在Asification.observe(http:// localhost:8100/build/vendor.js:51866:50)的AsyncAction.DelaySubscriber.dispatch(http:// localhost:8100/build/vendor.js: 76246:40)

home.ts

TypeError: Object(...) is not a function
    at SwitchMapSubscriber.project (http://localhost:8100/build/vendor.js:73935:76)
    at SwitchMapSubscriber._next (http://localhost:8100/build/vendor.js:61778:27)
    at SwitchMapSubscriber.Subscriber.next (http://localhost:8100/build/vendor.js:20750:18)
    at RefCountSubscriber.Subscriber._next (http://localhost:8100/build/vendor.js:20786:26)
    at RefCountSubscriber.Subscriber.next (http://localhost:8100/build/vendor.js:20750:18)
    at Subject.next (http://localhost:8100/build/vendor.js:23237:25)
    at ConnectableSubscriber.Subscriber._next (http://localhost:8100/build/vendor.js:20786:26)
    at ConnectableSubscriber.Subscriber.next (http://localhost:8100/build/vendor.js:20750:18)
    at Notification.observe (http://localhost:8100/build/vendor.js:51866:50)
    at AsyncAction.DelaySubscriber.dispatch (http://localhost:8100/build/vendor.js:76246:40)
Run Code Online (Sandbox Code Playgroud)

home.html的 …

angularfire2 ionic3

13
推荐指数
1
解决办法
3万
查看次数

离子条件类css

我正在使用Ionic3,并且:

<span class="char-left">{{REVIEW_MAX_LENGTH-ratingModel.review.length}} characters left</span>
Run Code Online (Sandbox Code Playgroud)

我想class在填充另一个值时有条件地更改该值,即将ratingForm.controls.review.length > 0值更改为class="char-left-error".

我确实看过ng-class,但似乎无法让它发挥作用.

任何帮助赞赏.

typescript ionic-framework ionic2 ionic3 angular

12
推荐指数
1
解决办法
1万
查看次数

Ionic 3 Prod Build版本号

在为桌面构建离子项目时,我使用以下命令

离子cordova构建浏览器--prod

这导致生成以下文件

建立/ main.js

但是,我希望能够在生成过程中自动为生成的文件添加版本号.所以最终会有类似的东西

建/ main.js?版本= 1.00

为了避免在每次prod构建之后需要清除浏览器缓存.

是否有这样的标志,还是我必须手动做的事情?

任何建议都会很棒!

编辑:

对于任何有兴趣的人,我的解决方案都在GitHub上!

https://github.com/RichardM99/ionic-3-version-build-file-hook

javascript cordova ionic3

12
推荐指数
1
解决办法
2185
查看次数

如何遍历从snapshot.val()接收的数据并将其推送到基于键的数组

我想snapshot.val()基于用户密钥遍历我收到的数据并将它们推送到一个数组中.我尝试在for..in循环的帮助下这样做,

firebase.database().ref('\interests').child("I would like to dine with").on('value', (snapshot) => {
  var data = snapshot.val();
  if(snapshot.exists()){
    for(let key in data){
      console.log("data[key]",data[key]);
      this.intVal.push(data[key]);
      console.log("intVal",this.intVal);
    }
  }
})
Run Code Online (Sandbox Code Playgroud)

但我得到这样的东西,

在此输入图像描述

如果你注意到,我的第一个数组在用户键下包含1个对象,而我的第二个数组在其用户键下包含3个对象.如何在单独的数组中推送每个值?

任何帮助将非常感激!谢谢

javascript firebase ionic-framework ionic3 angular

12
推荐指数
2
解决办法
6026
查看次数

IONIC 3 CORS ISSUE

在尝试对API进行GET调用时,我遇到了Ionic 3的CORS问题.我正在使用Ionic本地服务器,在命令行中为live server运行ionic serve.

错误 否请求的资源上存在"Access-Control-Allow-Origin"标头.原产地" 的http://本地主机:8100 "因此不允许访问.

我尝试用代理设置更新"ionic.config.json",但似乎没有工作..

{
  "name": "projectLeagueApp",
  "app_id": "47182aef",
  "type": "ionic-angular",
  "integrations": {
    "cordova": {}
  },
  "proxies": [
    {
      "path":"/games",
      "proxyUrl": "https://api-2445582011268.apicast.io/games/"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我的数据服务

import { Injectable } from '@angular/core';
import { Http, Headers, RequestOptions } from '@angular/http';
import 'rxjs/add/operator/map';


@Injectable()
export class DataProvider {

  headers = new Headers({'user-key': '1234567890123'});
  options = new RequestOptions ({headers: this.headers}); 
  limit: number = 50;

  constructor(public http: Http) {
    console.log('Hello DataProvider Provider');
  }

  getGames(genre, offset_num) {

    let genre_id …
Run Code Online (Sandbox Code Playgroud)

json cors angular-services ionic3 angular

12
推荐指数
2
解决办法
2万
查看次数

离子构建失败Info.plist未找到

Apple已经欺骗了我,即使我禁用了自动更新,它现在已经删除了最新的XCode版本(版本10.0(10A255))和依赖项.结果是,即使在删除(ionic cordova platform remove ios)并重新添加平台之后,我也无法构建我的应用程序.

它现在失败,出现以下错误.

onic cordova run ios --debug --target="iPhone-8"  --consolelogs

...

<path>/platforms/ios/build/emulator/MyApp.app/Info.plist file not found.

[ERROR] An error occurred while running cordova run ios --debug --target iPhone-8 (exit code 1).

ionic --version
3.20.0
Run Code Online (Sandbox Code Playgroud)

----编辑

跑了verbose并收到:No scripts found for hook "before_deploy".作为失败的附加信息.

-----编辑------

请在这里查看更多细节.我能够从头开始重现它/一个空白的应用程序模板 空白应用程序无法调试构建 - 找不到/Info.plist文件

ios ionic-framework ionic2 ionic3 xcode10

12
推荐指数
2
解决办法
8496
查看次数