В D, как передать пустую строку? (к gtkD)

Вы можете использовать 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

5
задан hasen 31 May 2009 в 05:14
поделиться

3 ответа

Я не думаю, что D действительно различает «пустую строку» и «пустую строку». Недорогое решение - setText ("").

[править] Неважно. Это ошибка в gtkD. в trunk / src / glib / Str.d (спасибо wm4 за его обнаружение) измените строку 147, чтобы она возвращала ""; (удалите .dup).

5
ответ дан 14 December 2019 в 01:16
поделиться

Я использовал "\ 0" , и, похоже, это сработало,

Я не знаю, попал ли какой-либо невидимый символ в текстовое поле, но это основано на при условии, что пустая строка в C - это просто \ 0

1
ответ дан 14 December 2019 в 01:16
поделиться

Вы должны написать assert (пусто! Равно null) вместо assert (empty! = Null)

3
ответ дан 14 December 2019 в 01:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: