2017-05-02 144 views
0

我想作爲參考貼在這裏,以通知模塊在我的應用程序集成功能 - https://github.com/bonnici/light-bootstrap-dashboard-angularcli

編譯:房產「通知」對類型「JQueryStatic」不存在。

這裏是我的notification.service.ts文件看起來像

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


export enum NotificationType { 
Info = 1, 
Success, 
Warning, 
Danger 
} 

export class NotificationOptions { 
public message: string; 
public icon: string = null; 
public timer = 4000; 
public type: NotificationType = NotificationType.Info; 
public from = 'top'; 
public align = 'right'; 

public constructor(
    fields: { 
     message: string, 
     icon?: string, 
     timer?: number, 
     type?: NotificationType, 
     from?: string, 
     align?: string 
    }) { 

    this.message = fields.message; 
    this.icon = fields.icon || this.icon; 
    this.timer = fields.timer || this.timer; 
    this.type = fields.type || this.type; 
    this.from = fields.from || this.from; 
    this.align = fields.align || this.align; 
    } 
    } 

    @Injectable() 
    export class NotificationService { 

constructor() { } 

public notify(options: NotificationOptions): void { 
    let typeString; 
    switch (options.type) { 
     case NotificationType.Success: 
      typeString = 'success'; 
      break; 
     case NotificationType.Warning: 
      typeString = 'warning'; 
      break; 
     case NotificationType.Danger: 
      typeString = 'danger'; 
      break; 
     default: 
      typeString = 'info'; 
      break; 
    } 

    $.notify(
     { 
      icon: options.icon, 
      message: options.message 
     }, 
     { 
      type: typeString, 
      timer: options.timer, 
      placement: { 
       from: options.from, 
       align: options.align 
      } 
     }); 
     } 
    } 

在我.component.ts文件,我在編譯期間調用像下面

import { NotificationService, NotificationOptions }  from '../../shared/services/notification.service'; 
    constructor(private notificationService: NotificationService) { } 

    ngOnInit(): void { 
    this.notificationService.notify(new NotificationOptions({ 
     message: 'Welcome!', 
     icon: 'pe-7s-gift' 
    })); 
    } 

但是,即時通訊錯誤$ .notify函數如下在我的VS2015

  • 住宅「通知」不存在於型「JqueryStatic」
  • 符號通知不能得到妥善解決,很可能它位於人跡罕至模塊

當我的用戶($任何).notify的例外是從VS編譯。但是,頁面拋出錯誤$ .notify不是一個函數。

這裏有什麼幫助嗎?

+0

你是不是想用'deferred.progress()'和'deferred.notify()'? – guest271314

+0

不,我不是。我的問題中的示例在Visual Studio代碼中工作正常。然而,當我在Visual Studio2015中插入特定的通知組件並將其集成到我的應用程序中時,它不起作用。我注意到的另一個區別是,我正在使用jquery 2+版本。而樣本使用1.x版本。我是新來的angular2和使用jQuery。不知道爲什麼這不起作用。 – Born2Code

+0

我更改爲使用$ .deferred.notify(),UX&VS2015編譯問題都消失了。但是,通知並未顯示在頁面中,也沒有控制檯錯誤。 – Born2Code

回答

0

但是,頁面拋出錯誤$ .notify不是一個函數。

請確保引導JavaScript是在jquery javascript之後加載的。

更多

引導文檔:http://getbootstrap.com/javascript/

+0

我只能在使用($ as any).notify之後才能解析構建編譯。之後,我看到if中的錯誤。通知不是函數。 – Born2Code

+0

我不明白你的jquery js加載bootstrap js的聲明。 – Born2Code