Поскольку я нашел этот вопрос, столкнувшись с той же проблемой (и документация Angular не обновляется на сегодняшний день), теперь вы можете использовать:
let blob = new Blob([response.arrayBuffer()], { type: contentType });
Другой обходной путь, если вы по какой-то причине находитесь на старой Версия Angular 2:
let blob = new Blob([(<any> response)._body], { type: contentType });
используйте (/ bookstore / book [@ location = 'US']) [1]
Сначала будут получены элементы книги с атрибутом location, равным 'US' . Затем он выберет первый узел из этого набора. Обратите внимание на использование круглых скобок, которые требуются в некоторых реализациях.
(обратите внимание, что это не то же самое, что / bookstore / book [1] [@ location = 'US']
, если только первый элемент также не имеет этот атрибут местоположения
)
Но если я точно не знаю, сколько компонентов я хочу создать, например, если это зависит от решения пользователя. Итак, как я могу объявлять компоненты динамически?
Ответ был предложен - самый простой способ - это список объектов (компонентов). TObjectList - самый простой в использовании (в элементах управления). Списки отличные!
In Form1 Public
MyList: TObjectList;
procedure AnyButtonClick(Sender: TObject);
// Вы можете усложниться и объявить // TNotifyevents и назначить их, но давайте не будем усложнять :) . . .
procedure Tform1.AnyButtonClick(Sender: TObject);
begin
If Sender is TButton then
begin
Case Tbutton(Sender).Tag of
.
.
.
// Or You can use the index in the list or some other property
// you have to decide what to do
// Or similar :)
end;
end;
procedure TForm1.BtnAddComponent(Sender: TObJect)
var
AButton: TButton;
begin
AButton := TButton.Create(self);
Abutton. Parent := [Self], [Panel1] [AnOther Visual Control];
AButton.OnClick := AnyButtonClick;
// Set Height and width and caption ect.
.
.
.
AButton.Tag := MyList.Add(AButton);
end;
Список объектов может содержать любой визуальный объект или нет, но это дает вам дополнительные накладные расходы на сортировку, какие элементы являются какими - лучше иметь связанные списки, если вы хотите, например, несколько динамических элементов управления на одинаковых панелях.
Примечание : как и другие комментаторы, я, возможно, слишком упростил для краткости, но я надеюсь, что вы уловили идею. Вам нужен механизм для управления объектами после их создания, и списки отлично подходят для этого.
и с булевыми функциями XPath not ()
, true ()
и false ()
. Кроме того, вы можете заключать подвыражения в круглые скобки.