Моя проблема: у меня есть объект продукта следующим образом: {id: 1, category: 'Television', price: '$2000',...}
, затем создаю директиву product
. Пользователь может купить продукт с помощью функции product
scope buy(quantity)
. Но у меня много продуктов, создайте область с этой функцией, чтобы каждый продукт мог быть пустой памятью? Должен ли я создать дополнительную директиву, productBuyer
имеет способ: buy(product, quantity)
, затем product
директива require: '^productBuyer'
будет помещена в нее? Какой дизайн лучше, когда масштабы применения? Или еще лучше?AngularJS: один или несколько директив?
Подробнее: Я не ставил buy
на заводе, потому что product
должен отображать сообщение об ошибке, если ошибка покупки (по многим причинам: устаревший продукт, товар-склад пуст, не доставляйте его пользователю. ..), этот метод процесса передается в директиву product
.
У вас будут продукты 100K-1M, отображаемые на одной странице? Нет? Затем перестаньте беспокоиться о пустой памяти. –
@NewDev: спасибо за ваш комментарий. О шаблоне проектирования, используйте одну директиву лучше? – Pew
Я не обязательно думаю, что использование директивы, которая «покупает» продукт, который он представляет, является хорошей идеей. Директивы - это автономные и многоразовые биты функциональности. Они могут подключиться к службе, но что-то вроде покупки продукта, ваше приложение, скорее всего, будет задействовано (например, тележка, проверка и т. Д.). Вы можете определенно прикрепить кнопку «купить» к каждой директиве, но я бы поставил функцию покупки на контроллер. –