Вы можете использовать window
, как уже говорили другие, и чтобы сделать его инъекционным, начиная с ng6 и далее, вам нужен токен для инъекций.
Объявите токен следующим образом:
export const WINDOW = new InjectionToken('window',
{ providedIn: 'root', factory: () => window }
);
Затем используйте его в конструкторе классов:
class Foo {
constructor(@Inject(WINDOW) private window: Window) { }
}
Поскольку Window
является интерфейсом в TypeScript, если вы этого не сделаете сделать инъекцию таким образом, когда вы создаете проект для производства, вы получите ошибку: Can't resolve all parameters for
. А позже еще один: ERROR in : Error: Internal error: unknown identifier undefined
.
Чтобы лучше понять инъекцию, прочитайте угловые документы для DI: https://angular.io/guide/dependency-injection
Я не думаю, что D действительно различает «пустую строку» и «пустую строку». Недорогое решение - setText ("").
[править] Неважно. Это ошибка в gtkD. в trunk / src / glib / Str.d (спасибо wm4 за его обнаружение) измените строку 147, чтобы она возвращала ""; (удалите .dup).
Я использовал "\ 0"
, и, похоже, это сработало,
Я не знаю, попал ли какой-либо невидимый символ в текстовое поле, но это основано на при условии, что пустая строка в C - это просто \ 0
Вы должны написать assert (пусто! Равно null) вместо assert (empty! = Null)