Это работает для меня в настоящее время (2018-03, угловой 5.2 с AoT, проверено в angular-cli и пользовательской сборке webpack):
Сначала создайте инъекционную службу, которая предоставляет ссылку на окно :
import { Injectable } from '@angular/core';
// This interface is optional, showing how you can add strong typings for custom globals.
// Just use "Window" as the type if you don't have custom global stuff
export interface ICustomWindow extends Window {
__custom_global_stuff: string;
}
function getWindow (): any {
return window;
}
@Injectable()
export class WindowRefService {
get nativeWindow (): ICustomWindow {
return getWindow();
}
}
Теперь зарегистрируйте эту службу с вашим корневым AppModule, чтобы ее можно было ввести повсюду:
import { WindowRefService } from './window-ref.service';
@NgModule({
providers: [
WindowRefService
],
...
})
export class AppModule {}
, а затем позже, где вам нужно ввести window
:
import { Component} from '@angular/core';
import { WindowRefService, ICustomWindow } from './window-ref.service';
@Component({ ... })
export default class MyCoolComponent {
private _window: ICustomWindow;
constructor (
windowRef: WindowRefService
) {
this._window = windowRef.nativeWindow;
}
public doThing (): void {
let foo = this._window.XMLHttpRequest;
let bar = this._window.__custom_global_stuff;
}
...
Вы также можете добавить nativeDocument
и другие глобалы к этой службе аналогичным образом, если вы используете их в своем приложении.
edit: Обновлено с предложением Truchainz. edit2: Обновлено для углового 2.1.2 edit3: Добавлены примечания AoT edit4: Добавление обходного примечания типа any
edit5: Обновленное решение для использования WindowRefService, которое исправляет ошибку, которую я получал при использовании предыдущего решения с другим редактором edit6: добавление примера custom Ввод текста
Caffe-SSD - это не ветвь, а развилка ванильного Caffe. Компиляция и использование Caffe в Windows требует определенных усилий (например, предварительной сборки некоторых внешних библиотек, настройки конфигурации CMake и т. Д.), Чего не было сделано для вилки Caffe-SSD.
Вам необходимо объединить вклады из ветки Windows в Caffe-SSD. Для этого есть несколько решений ( https://github.com/runhang/caffe-ssd-windows , https://github.com/gustavkkk/caffe-ssd-win ], Google для более), но я не использовал их.