Храните файл json в каталоге Assets (parallel to app dir)
. Обратите внимание, что если бы вы сгенерировали с новым новым именем YourAppname - этот каталог ресурсов существует в той же строке с каталогом «app», а службы должны быть дочерним каталогом каталога приложений. Может выглядеть так:
:: app / services / myservice.ts
getOrderSummary(): Observable {
// get users from api
return this.http.get('assets/ordersummary.json')//, options)
.map((response: Response) => {
console.log("mock data" + response.json());
return response.json();
}
)
.catch(this.handleError);
}
Bare *
используется, чтобы заставить вызывающего пользователя использовать именованные аргументы, поэтому вы не можете определить функцию с *
в качестве аргумента, если у вас нет следующих аргументов ключевого слова.
См. этот ответ или документации Python 3 для более подробной информации.
Хотя исходный ответ полностью отвечает на вопрос, просто добавляя немного связанной информации. Поведение для одиночной звездочки происходит от PEP-3102
. Цитирование связанного раздела:
The second syntactical change is to allow the argument name to
be omitted for a varargs argument. The meaning of this is to
allow for keyword-only arguments for functions that would not
otherwise take a varargs argument:
def compare(a, b, *, key=None):
...
В простом английском языке это означает, что для передачи значения для ключа вам необходимо явно передать его как key="value"
.
*
состоит в том, чтобы сожрать оставшиеся позиционные аргументы, но это не так. Передача дополнительных позиционных аргументов, чем ожидает функция, дает ошибку такого рода: foo() takes exactly 1 positional argument (2 given)
– Ajay M
27 May 2018 в 01:49
*args
, должны встречаться перед голым*
. – BallpointBen 9 June 2017 в 19:48