Повторенье — мать ученья..
1. создаю директиву ngDynamicMenu. Директива призвана впитать в себя всю логику связанную с отображением. По этому директива будет создавать контейнер button-group и заполнять его кнопками по дате полученной из модели. То есть в html -
<ng-dynamic-menu ng-model="MenuModel.getData()"></ng-dynamic-menu>
1.1 немного рассуждений о "
template" директивы. Сначала хотелось сделать что-то типа -
template: <div id="button-group"></div>
но потом задумался над тем, что нам предоставляет сам angular. Он предоставляет в директиве jqLite с его методом foud, который выбирает по имени тега. Получается что если я выберу div, то в будущим могу забыть об этом и при расширении добавлю "что-то" в div'е, то он возьмет и выберет уже не один объект, а массив. Вот это меня и натолкнуло на мысль, что если и использовать контейнеры, то они сами должны быть директивами уникальными именами. И раз так, то контейнером буде сама директива.
3. Так же посетила мысль что ng-model это лишнее, так как служит для связывания данных и валидации и тому подобного. По этому вопрос, как директиве получить json остается для меня открытым, но могу лишь предположить, что лучшим вариантом будет передача ссылки, которую я загружу при помощи "сервиса для загрузки".
4. Если я здесь, значит меню уже работает и первый клик, который получил хендлер в директиве не знает что с ним делать.
element.bind('clicck', ()=>{});
Не знает по тому, что эти клики предназначаются параллельно лежащий директиве. Опять таки клик я могу доставить туда либо при помощи общего контроллера, либо при помощи сервиса. Как будет лучше?