ожидая ответа от сервера с угловым [дубликатом]

Объект FlowDocument поддерживает функции, которые вы ищете в свойствах PageWidth, PagePadding. Свойство ColumnWidth не влияет на ширину страницы, скорее это предполагает, или может обеспечить, как столбцы выкладываются в пределах ширины страницы.

Некоторые подробности из блога по теме:

PageWidth: это, как он указывает, является шириной страницы документа. Сумма устанавливается в независимые от устройства пиксели (пиксель составляет 1/96 дюйма, так что 1 "= 96 пикселей). Имейте в виду, что при настройке этого значения также следует учитывать маржу страницы.

PagePadding: это имя, которое гораздо более уместно в WPF, чем в документе, на самом деле является границей страницы. Количество пикселей (1/96 дюйма) между краем бумаги и содержимым. Таким образом, в PagePadding + PageWidth должно быть равно или, по крайней мере, не больше ширины бумаги. Если у вас 8,5-дюймовая бумага (816 пикселей), и у вас есть 1/2 поля (48 пикселей * 2 = 96), тогда вы можете использовать только 720 пикселей для параметра PageWidth. PagePadding имеет толщину типа, поэтому вы можете установить единообразное значение, применимое ко всем полям, или указать их отдельно по желанию.

ColumnWidth: Этот размер не имеет отношения к размеру контейнера, как размещается содержимое в контейнере. Как видно из названия, он устанавливает желаемую ширину столбцов документа. Желательно , поскольку по умолчанию макет будет регулировать ColumnWidth, чтобы наилучшим образом использовать доступную ширину страницы. Чтобы обеспечить настройку ширины столбца, вам нужно установить IsColumnWidthFlexible = False.

полная запись в блоге здесь

MSDN на страницеPadding Property

MSDN для свойства PageWidth

24
задан Sidriel 16 June 2016 в 18:41
поделиться

3 ответа

Поскольку http-вызовы и т. п. являются асинхронными, вы получаете вместо Observable возвращаемое синхронное значение. Вы должны подписаться на него, и в обратном вызове вы получите данные.

Один вариант заключается в том, чтобы поместить вашу логику в вызов subscribe

getSomething() {
    return this._restService.addRequest('object', 'method').run()
        .subscribe(
            res => {
                // do something here
                res;
            },
            err => {
                console.error(err);
            }
        );
}

. Но мне нравится делать обратный вызов , чтобы ввести логику извне (возможно, компонент, возможно, другую службу):

getSomething(callback: (data) => void) {
    return this._restService.addRequest('object', 'method').run()
        .subscribe(
            res => {
                callback(res);
            },
            err => {
                console.error(err);
            }
        );
}

И в вашем компоненте или где угодно:

this._yourService.getSomething((data) => {
    // do something here
    console.log(data);
});
35
ответ дан rinukkusu 16 August 2018 в 05:36
поделиться
  • 1
    Определенно новый способ подумать об использовании сервисов, это оказалось именно то, что было необходимо! – Sidriel 16 June 2016 в 19:24
  • 2
    Я приземлился здесь предположительно из-за ключевого слова Observable. Мне нужно сделать что-то подобное этому. Какой тип службы имеет метод .run ()? Я не могу использовать это на регулярной службе Angular 2 http. спасибо – Adam Mendoza 15 March 2017 в 05:11
  • 3
    чтобы узнать об ошибке. Спасибо за этот ответ. – lahiruhashan 21 June 2018 в 07:18

Я не использовал это сам, но я считаю, что он должен работать в теории (:

// service.ts
getSomething() {
  let subject: Subject = new Subject();
  this._restService.addRequest('object', 'method').run()
    .subscribe(subject);
  return subject;
}

// this can be removed (;
returnSomething() {
  return this.getSomething();
}

// component.ts
ngOnInit() {
  this.service.returnSomething()
    .subscribe(res => console.log(res), err => console.log(err));
}

Для получения дополнительной информации проверьте subject docs . Вы можете использовать разные типы например, BehaviorSubject имеет свойство value, доступ к которому вы можете получить ...

ngOnInit() {
  // if you use BehaviorSubject
  this.service.returnSomething().value
}

Вот рабочий рабочий блок ...

1
ответ дан Sasxa 16 August 2018 в 05:36
поделиться
  • 1
    Это не сработает, поскольку объект возвращается, прежде чем вы получите данные от подписки на него. – rinukkusu 16 June 2016 в 19:09
  • 2
    @rinukkusu True, для начального значения, должен работать после .. Вы можете установить начальное значение для BehaviourSubject tho '... или .filter(Boolean) перед подпиской на наблюдаемый ... – Sasxa 16 June 2016 в 19:12
  • 3
    @rinukkusu Я добавил ссылку plunker с рабочим примером ... – Sasxa 16 June 2016 в 19:54
0
ответ дан hjbello 6 September 2018 в 04:11
поделиться
Другие вопросы по тегам:

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