如何从离子2中的全局服务方法调用提供者方法,角度

时间:2017-11-02 12:18:34

标签: javascript angular typescript ionic2

我正在尝试将API调用中的数据插入数据库。 API调用是从全局服务完成的。当我尝试在构造函数方法中执行它时,它正在工作。但是,如果我从服务的其他外部方法尝试它我收到错误“错误类型错误:无法读取属性' setMetadataKey'未定义的(...)“。

import { Database } from './../providers/database/database';
import {Injectable} from '@angular/core';
@Injectable()
export class mAppService{
showValue: string;
public database;
userLoggedIn: boolean = false;
constructor(database: Database) {
//If i call the database method from here its working**
}
getConnect(ipaddress,portnumber){
    try {
    var t = ipaddress;
    var p = portnumber;
    client = new linear.client({transports: [
                                {type: 'websocket',
                                 host: t, port: p}
                               ]});
    client.connect();
    client.transport.onopen=this.onopen;
    client.transport.onclose=this.onclose;
    client.onconnect = client.ondisconnect = this.getStatus;
    client.onnotify = this.recvNotify;
    let stream$ = new Observable(observer => {
    let interval = setInterval(() =>{
    observer.next(client.transport.state);
         /*observer.error(client.transport.onclose);
         observer.complete();*/
    },1000);
    return() =>{
        clearInterval(interval);
    }
    }).share();
    return stream$;
} catch (error) {
    console.log("catch.."+error);
    }
}

recvNotify(m) {
var method = m.name;
var value = m.data;
var buttonType = "EFT_PAN";
this.database.setMetadataKey(value,buttonType).then((result) => {
            console.log("Successfully saved the setMetadataKey.")
        }, (error) => {
            alert("ERROR: "+ error);
        });
}
}

任何人都可以帮我解决这个问题

0 个答案:

没有答案