Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular Can';t解析LocationTracker的所有参数_Angular_Cordova_Ionic2_Location_Ionic3 - Fatal编程技术网

Angular Can';t解析LocationTracker的所有参数

Angular Can';t解析LocationTracker的所有参数,angular,cordova,ionic2,location,ionic3,Angular,Cordova,Ionic2,Location,Ionic3,我试着遵循Josh Morony的示例代码, 但我似乎找不到解决办法 我从控制台得到一个错误,它显示在webrowser上,甚至在设备上 我已经添加了插件: $ ionic cordova plugin add cordova-plugin-geolocation $ npm install --save @ionic-native/geolocation $ ionic cordova plugin add cordova-plugin-mauron85-background-geolocat

我试着遵循Josh Morony的示例代码, 但我似乎找不到解决办法

我从控制台得到一个错误,它显示在webrowser上,甚至在设备上

我已经添加了插件:

$ ionic cordova plugin add cordova-plugin-geolocation
$ npm install --save @ionic-native/geolocation
$ ionic cordova plugin add cordova-plugin-mauron85-background-geolocation
$ npm install --save @ionic-native/background-geolocation
这是错误消息

Uncaught Error: Can't resolve all parameters for LocationTracker: ([object Object], [object Object], [object Object], ?).at syntaxError (file:///android_asset/www/build/vendor.js:79310:34)
    at CompileMetadataResolver._getDependenciesMetadata (file:///android_asset/www/build/vendor.js:92647:35)
    at CompileMetadataResolver._getTypeMetadata (file:///android_asset/www/build/vendor.js:92515:26)
    at CompileMetadataResolver._getInjectableMetadata (file:///android_asset/www/build/vendor.js:92501:21)
    at CompileMetadataResolver.getProviderMetadata (file:///android_asset/www/build/vendor.js:92791:40)
    at file:///android_asset/www/build/vendor.js:92720:49
    at Array.forEach (native)
    at CompileMetadataResolver._getProvidersMetadata (file:///android_asset/www/build/vendor.js:92681:19)
    at CompileMetadataResolver.getNgModuleMetadata (file:///android_asset/www/build/vendor.js:92336:50)
    at JitCompiler._loadModules (file:///android_asset/www/build/vendor.js:103400:66)
pages/home/home.ts

import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { LocationTracker } from '../../providers/location-tracker/location-tracker';

@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage {

constructor(public navCtrl: NavController, public locationTracker: LocationTracker) {

    this.startTracking();
  }

  startTracking(){
    this.locationTracker.startTracking();
  }

  stopTracking(){
    this.locationTracker.stopTracking();
  }
}
/pages/home/home.html

<ion-content padding>
  <ion-label>Current Latitude: {{locationTracker.lat}</ion-label>
  <ion-label>Current Longitude: {{locationTracker.lng}}</ion-label>
</ion-content>
app/app.module.ts

import { BrowserModule } from '@angular/platform-browser';
import { ErrorHandler, NgModule } from '@angular/core';
import { IonicApp, IonicErrorHandler, IonicModule } from 'ionic-angular';
import { MyApp } from './app.component';
import { HomePage } from '../pages/home/home';
import { StatusBar } from '@ionic-native/status-bar';
import { LocationTracker } from '../providers/location-tracker/location-tracker';
import { BackgroundGeolocation } from '@ionic-native/background-geolocation';
import { Geolocation } from '@ionic-native/geolocation';


@NgModule({
  declarations: [
    MyApp,
    HomePage
  ],
  imports: [
    BrowserModule,
    IonicModule.forRoot(MyApp),
    HttpModule
  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp,
    HomePage
  ],
  providers: [
    StatusBar
    {provide: ErrorHandler, useClass: IonicErrorHandler}
    LocationTracker,
    BackgroundGeolocation,
    Geolocation
  ]
})
export class AppModule {}

如果你看一下错误,它说第四个参数不能被注入

Uncaught Error: Can't resolve all parameters for LocationTracker: ([object Object], [object Object], [object Object], ?)
从可注入的

constructor(public zone: NgZone,
            public backgroundGeolocation: BackgroundGeolocation,
            public geolocation: Geolocation,
            public geoposition: Geoposition) {
}
第四个是这个地理位置,这似乎是你没有“提供”在NGM模块

因此,只要不使用此“地理位置”实例/对象,就可以将其从构造函数中删除:

constructor(public zone: NgZone,
            public backgroundGeolocation: BackgroundGeolocation,
            public geolocation: Geolocation) {
}

它可以是离子2或离子3,但不能同时是:)在tagsHi onetwo12中,你指的是标记吗?我明白你的意思。我想这两个错误都可能。很好。。您的解释帮助我更好地理解了如何阅读错误…非常感谢!我现在看到了。明天我测试完后,我会给出答案。你解释得很好,很准确。你是对的。你发现了错误。但是,修复方法是从构造函数中删除地理位置,因为它不是必需的,并且不需要在NgModule中“提供”。请把它加在你的答案上,我会接受它为正确答案。非常感谢。你好@ChristianBenseler!它之所以有效,是因为页面中没有使用“地理位置”。但是,如果要使用它并且需要在构造函数中出现?
constructor(public zone: NgZone,
            public backgroundGeolocation: BackgroundGeolocation,
            public geolocation: Geolocation) {
}