标签: ionic2

"TypeError:无法读取属性'然后'未定义

我目前正在将我的离子v1应用程序更新为离子v2,但我在基于承诺的服务方面遇到了麻烦.

离子v1

home.controller.js

angular.module('myApp.home', ['myApp.services.camera',])

.controller('HomeCtrl', function($scope, CameraService) {
  $scope.getPicture = function() {
    var onSuccess = function(result) {
      // Some code
    };

    var onError = function(err) {
      // Some code
    };

    CameraService.getPicture().then(onSuccess, onError);
  };
});
Run Code Online (Sandbox Code Playgroud)

camera.service.js

angular.module('myApp.services.camera', [])

.service('CameraService', function($q, $ionicPlatform, $cordovaCamera) {
  return {
    getPicture : function() {
      var deferred = $q.defer();

      var onSuccess = function(result) {
        deferred.resolve(result);
      };

      var onError = function(err) {
        deferred.reject(err);
      };

      // my options here

      $ionicPlatform.ready(function() {
        $cordovaCamera.getPicture(options).then(onSuccess, onError);
      });

      return deferred.promise;
    }
  }; …
Run Code Online (Sandbox Code Playgroud)

promise typescript ionic2 angular

5
推荐指数
1
解决办法
7335
查看次数

如何使用ionic2配置代理?

Ionic 2已经弃用了ionic.config.js.ionic.project现在是ionic.config.json,我现在应该将我的设置放在那里.因此,按照离子的离子代理指令(无法在任何地方找到ionic2 doc),我的ionic.config.json现在看起来像这样:

{
  "name": "newapp",
  "app_id": "",
  "v2": true,
  "typescript": true,
  "proxies": [{
    "path": "/api",
    "proxyUrl": "https://api.service.com"
  }]
}
Run Code Online (Sandbox Code Playgroud)

但是,这似乎不起作用.

更新:我似乎得到代理服务,但我仍然收到CORS错误.

proxy ionic2

5
推荐指数
1
解决办法
7484
查看次数

rxjs主题switchmap http错误

我正在使用Subject,switchMap并.next()在http.get()触发新请求时取消先前挂起的http调用.

问题是,当我处理http错误(如超时)时_postMPCHC.next(...),html中调用的方法不再起作用...我是否需要在出错时重新创建订阅?怎么样 ?

import {Component} from '@angular/core';
import {NavController, NavParams, Toast} from 'ionic-angular';
import {Http, URLSearchParams} from '@angular/http';
import {AppSettings} from '../../appSettings';
import {Subject} from 'rxjs/Subject';


@Component({
  templateUrl: 'build/pages/video/video.html'
})
export class VideoPage {
  _postMPCHC: any= new Subject();

  constructor(private http: Http, private nav: NavController) {
    this.defineHttp();
  }

  defineHttp() {

    var sub = this._postMPCHC.switchMap((x: string) => {
      let params: URLSearchParams = new URLSearchParams();
      params.set('token', AppSettings.API_TOKEN);
      params.set('prog', 'mhz');
      params.set('prog', 'mpchc');
      params.set('action', x); …
Run Code Online (Sandbox Code Playgroud)

error-handling rxjs ionic2 angular

5
推荐指数
1
解决办法
803
查看次数

Ionic 2细分不适用于Google地图

我试图在离子2中实现谷歌地图作为细分(地图和列表).

这是我的HTML:

<ion-header>
  <ion-navbar>
    <button menuToggle>
      <ion-icon name="menu"></ion-icon>
    </button>

  <ion-segment [(ngModel)]="clients">
      <ion-segment-button value="map">
        Map
      </ion-segment-button>
      <ion-segment-button value="list">
        List
      </ion-segment-button>
    </ion-segment>
      </ion-navbar>
</ion-header>
<ion-content>
  <div [ngSwitch]="clients">
    <div *ngSwitchCase="'map'">
        <div #map id="map"></div>
     </div>

    <ion-list *ngSwitchCase="'list'">
      <ion-item>
        <h2>List Item 1</h2>
      </ion-item>


</ion-list>
  </div>
</ion-content>
Run Code Online (Sandbox Code Playgroud)

这是我的.scss文件:

 #map {
    width: 100%;
    height: 100%;
  }
Run Code Online (Sandbox Code Playgroud)

当我加载应用程序时,列表段工作正常,但地图显示为白色屏幕.如果我在ion-content标签之后定义了map div标签,那么地图将在两个段中显示.如何在1段中创建地图,在其他段中列出?

google-maps ionic-framework ionic2 angular

5
推荐指数
1
解决办法
927
查看次数

angular2使用HTTP发布XML类型请求数据

我可以通过以下方式将JSON请求数据发布到服务器,但是如何使用http将XML结构化数据发布到服务器.

getAuthSeed(value) {
        let params = "{'validateUsr': 'false'}";
        let headers = new Headers();
        headers.append('Content-Type', 'application/json');
        headers.append('params',  params);

        let url = 'tab-api/login/'+value.username+'/seed/false';

        let options = new RequestOptions({
            method: RequestMethod.Get,
            url: url,
            headers: headers
        });

        return this.http.request(new Request(options)).map(
            result => {
                let data = result.json();
                return data;
            }
        )
    }
Run Code Online (Sandbox Code Playgroud)

示例XML请求:

<pi:ReqPay xmlns:pi="http:schema/">
  <Head ver="1.0" ts="" orgId="" msgId=""/>
  <Meta>
    <Tag name="PAYRE" value=""/>
  </Meta>
  <Txn id="" note="" custRef="" refId="" refUrl="" ts="" type="PAY|COLLECT">
   <RiskScores>
     <Score provider="ci" type="TXNRISK" value=""/>
   </RiskScores>
   <Rules>
    <Rule name="MINAMOUNT" value=""/>
   </Rules> …
Run Code Online (Sandbox Code Playgroud)

ajax ionic2 angular2-http angular

5
推荐指数
1
解决办法
2276
查看次数

找出Angular2中的调用者函数,Typescript

我想在我的angular2 / ionic2项目中找出特定函数的调用者函数。.arguments.callee.caller.toString()不好运

任何的想法?

ionic2 angular

5
推荐指数
1
解决办法
1363
查看次数

Ionic 2 Angular2 http post set-cookie

有人知道是否可以在http 2登录角度2后保存cookie?当我检查标题作为响应时,我可以看到cookie,但他们不会保存到浏览器,我无法访问它们.

在此输入图像描述

我也试过直接访问'set-Cookie'但没有工作.

this.http.post(this.serverUrl+"/login/", {data: {email: email, pass: pass}}) 
        .subscribe(res => {

            let headers: Headers = res.headers;
            let cook = headers.getAll('Set-Cookie')); //this is null
Run Code Online (Sandbox Code Playgroud)

我会非常高兴任何帮助我不知道怎么做并保存饼干.谢谢.

cookies http ionic2 angular

5
推荐指数
0
解决办法
936
查看次数

在Ionic 2中进行HTTP POST调用会给出禁止响应

我只是想在我的IONIC 2项目中进行http post调用.当我运行离子服务时它工作正常.但是当我运行离子运行anroid以在我的设备上运行它时它给了我403(禁止)响应.

这是我的PaymentService.ts,其中已经进行了http调用

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

@Injectable()
export class PaymentService {
static get parameters() {
    return [[Http]];
}

constructor(private http:Http) {}

postToPaymentApi(data) {
    let headers: Headers = new Headers()
    headers.set('Content-type', 'application/x-www-form-urlencoded')
    let options = new RequestOptions({headers: headers})

    var response = this.http.post("http://test/url",data,options).map(res => res.json());
    return response;
   }
 }
}
Run Code Online (Sandbox Code Playgroud)

为了克服这个问题,我尝试了几件事,比如

  1. 运行cordova插件添加cordova-plugin-whitelist
  2. 在我的config.xml中添加了这一行 <meta http-equiv="Content-Security-Policy" content="default-src *; img-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' …

android cordova ionic-framework cordova-plugins ionic2

5
推荐指数
1
解决办法
1250
查看次数

离子项内的离子 - textarea不能在IONIC 2上工作

我在离子项内部有一个离子文本区域.它显示很好,但当我按下textarea时,它会显示并隐藏键盘.而且因为键盘是隐藏的,我不能放任何文字.

这就像在我触摸屏幕之后触发了onblur事件.

这是我的代码:

<ion-item>
    <ion-label stacked>Comment</ion-label>
    <ion-textarea [(ngModel)]="formData.comment" name="comment" placeholder="Put any comment..."></ion-textarea>
</ion-item> 
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

html ionic-framework ionic2 angular

5
推荐指数
1
解决办法
5043
查看次数

如何使用返回http Promise的Angular 2服务

我在这里遇到角度2的麻烦。我使用返回承诺的服务,但是当我尝试检索响应时出现错误。

我读过这个问题, 这是我的代码。

这是HotelService.ts

import { Injectable } from '@angular/core';
import { Http } from '@angular/http';

//rxjs promises cause angular http return observable natively.
import 'rxjs/add/operator/toPromise';

@Injectable()
export class HotelService {

    private BASEURL : any = 'http://localhost:8080/hotel/';

    constructor(private http: Http) {}  

    load(): Promise<any> {
        return this.http.get(this.BASEURL + 'api/client/hotel/load')
            .toPromise()
            .then(response => {
                response.json();
                //console.log(response.json());
            })
            .catch(err => err);
    }
}
Run Code Online (Sandbox Code Playgroud)

此Hotel.ts(组件)

import { Component, OnInit } from '@angular/core';
import { NavController } from 'ionic-angular';

import { HotelService } from …
Run Code Online (Sandbox Code Playgroud)

javascript undefined angular-promise ionic2 angular

5
推荐指数
1
解决办法
4783
查看次数