Angular2 EXCEPTION没有String的提供者

时间:2017-01-26 20:40:43

标签: angular typescript ionic3

我有一个全新的应用程序创建与ng-cli 用这个非常简单的代码^^

func playSound() {
    let coinSound = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("voiceRecord", ofType: "caf")!)
    do{
        let audioPlayer = try AVAudioPlayer(contentsOfURL:coinSound)
        audioPlayer.prepareToPlay()
        audioPlayer.play()
    }catch {
        print("Error getting the audio file")
    }
}

我已进入控制台

EXCEPTION:没有String的提供者!

我没有在代码中看到任何错误 怎么了!

在ng-book中我可以阅读

fatal error: unexpectedly found nil while unwrapping an Optional value

看看

https://github.com/Microsoft/TypeScriptSamples/blob/master/greeter/greeter.ts

2 个答案:

答案 0 :(得分:14)

构造函数中的错误:

export class AppComponent {
  constructor(private my: string) {}
} 

private my: string不应该在构造函数中注入,但在外面,假设它是你想在组件中使用的变量。

export class AppComponent {
  private my: string;
  constructor() {
    this.my = 'Hello!'; // if you want to assign a value (in the constructor) to your string, do it here!
  }
} 

我建议你从一开始就使用Tutorial,所以你要学习Angular的基础知识:)

编辑,您添加的后一部分是一个类,例如用于键入您的对象而不是组件,用于类别文章的类型化对象,这是有效的语法:

export class Article { 
  title: string; 
  link: string; 
  votes: number;
  constructor(title: string, link: string, votes?: number) { 
    this.title = title;
    this.link = link;
    this.votes = votes || 0;
  }
}

然后,您可以将此类导入AppComponent,并用于分配Article个对象。

import { Component } from '@angular/core';
import { Article } from './your.path'

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {

  article: Article = new Article('titleHere', 'linkHere', 3)

  constructor() {}
}

答案 1 :(得分:0)

我有此错误,可以解决

只需要重新运行构建过程

通过使用cntrl + c停止它

然后再次ionic serve

或角度命令