Git Product home page Git Product logo

angular5-course's Introduction

angular5-course's People

Contributors

angular-cli avatar sergous avatar

Watchers

 avatar  avatar

angular5-course's Issues

generator.factory.ts

Почему-то этот файл оказался в корне приложения.

cart.service.ts

Почему бы не проинициализировать свойство products - пустым массивом сразу? Тогда вам не понадобится конструктор.

products.service.ts

async getProducts() {
return Promise.resolve([
new Product("Book", "Bestseller of this summers", 20, ProductCategory.equivalents, true),
new Product("Apple", "Green but sweet", 1, ProductCategory.ingredients, true),
]);
}
Тут нет необходимости выполнять Promise.resolve(), так как результат асинхронного метода всеравно будет промис, независимо от того, что вы вернете. Поэтому можно просто return [...]

cart.service.ts

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

root folder

Старайтесь в корневой папке приложения app держать только корневой модуль и корневой компонент. Отсальные файлы необходимо разнести по отдельным папкам. Желательно использовать организацию не по типам файлов, а по ункиональности + типы файлов.

addProduct + removeProduct (cart.service.ts)

В методе addProduct происходит мутирование данных, а в методе removeProduct создается новый массив. Может быть стоит использовать один подход, например, всегда создавать новый массив или всегда мутировать. Тогда переход из одного подхода к другому, если такой понадобиться в будущем, будет проще реализовать.

cart.service.ts

Метод searchItemsByProduct() частично дублирует функционал метода removeItem()

config-options.service.ts

Такое внедрение сервиса выбрано в качестве эксперимента?
constructor(
@Inject(forwardRef(() => LocalStorageService)) public localStorageService: LocalStorageService
) { }

constants.service.ts

Для этого сервиса ConstantsService не требовалось создавать класс.
export class ConstantsService {
constructor(
public title: string,
public version: string,
) { }
Если вы создали класс и добавили декоратор @Injectable(), то старайтесь в конструкторе не использовать НЕ зависимости. Сейчас это работает, но может не работать в будущем. Так как Ангуляр будет искать title и version как сервисы.

app.module.ts

Во втором задании приложение должно уже состоять из нескольких модулей. У вас увидео пока только AppModule.

ng serve

При запске проекта Task4 возникает ошибка

ERROR in src/app/components/products/product-list/product-list.component.ts(17,5): error TS2322: Type 'Promise<Product[]>' is not assignable to type 'Product[]'.
Property 'includes' is missing in type 'Promise<Product[]>'.
В поле products: Product[]; присваивается промис.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.