@ R.Richards прав: у вас не должно быть OnPush
в AppComponent
, потому что это корневой компонент вашего приложения, обнаружение изменений должно начинаться где-то, а AppComponent
- там, где это происходит. Чтобы ваш тест был более измеримым, вы должны иметь AppComponent
, ParentComponent
и ChildComponent
- все, кроме AppComponent
с ChangeDetection
, установленным на OnPush
.
Этот код:
this.childInput = {
time: new Date()
};
обновляет childInput
в классе AppComponent, но не в его шаблоне, поэтому вы никогда не обновите дочерний компонент @Input()
.
Если вы хотите, чтобы это работало, вам нужно добавить одну строку после обновления класса childInput
в AppComponent
, чтобы его шаблон получил новую привязку, которая затем будет передана дочернему компоненту. [1118 ]
this.childInput = {
time: new Date()
this.cd.detectChanges()
};
Следующие проекты CodePlex, кажется, являются правильными Ваш союзник:
Eric Evans и шведская консалтинговая компания выпустили пример приложения на основе поставлющегося примера, который Eric использует всюду по книге. Это находится в Java, но понятия хорошо документируются на странице проекта.
Автор Управляемого Доменом Дизайна создал Время проекта и Деньги как витрина для понятий, описанных в его книге. Это - больше, чем просто 'игрушечный' проект, который предоставляет некоторый код кода для сопровождения книги, это предназначается, чтобы быть готовой к производству заменой для понятий времени и денег, которые скорее плохо реализованы в базовых библиотеках Java.
Я написал несколько статей, в основном с примерами на C # по реализации шаблонов DDD в реальных приложениях.
Марк Нийхоф сделал отличный. Пример чистого примера Использование рисунка CQRS, которая является горячей реализацией DDD. Вы можете прочитать все об этом на блоге Marks Blog
Habanero - это структура разработки, которая реализует принципы проектирования доменов, это отличный источник материала и сообщество с открытым исходным кодом, посвященным дизайну домена в .NET.
Вы можете взглянуть на мой DDDSample.Net. Он демонстрирует не только классический DDD, но и подход CQRS с использованием двух реляционных хранилищ и применением подхода Event Sourcing.
В рамках выступления на мероприятии голландского сообщества .NET я начал реализацию полномасштабного примера Silverlight 4 с использованием CQRS и Event Sourcing. Он во многом опирается на одну из самых серьезных инициатив CQRS с открытым исходным кодом, NCQRS . Вы можете найти соответствующий сайт CodePlex здесь .