Я ищу советы о том, как реализовать иерархическую структуру в Angular, где директива (<partition>
) может вызывать метод на контроллере дочерней директивы (<property-value>
).Угловые директивы, которые вызывают методы для дочерних директив
Я собрал подробный пример здесь:
https://jsfiddle.net/95kjjxkh/1/
Как вы можете видеть, мой код содержит внешнюю директиву, <partition>
, который отображает один или несколько <property-value>
директивы внутри.
Директива <property-value>
предлагает метод редактирования editItem()
, который позволяет пользователю изменять значение одной записи. (Чтобы мой пример был коротким, я просто назначил случайное число здесь, но в моем рабочем приложении появится модальный запрос, чтобы запросить у пользователя новое значение.)
Это прекрасно работает. Однако во внешней директиве <partition>
я хотел бы добавить возможность создать новую, пустую директиву <property-value>
, а затем немедленно вызвать ее метод редактирования, чтобы пользователь мог ввести начальное значение. Если начальное значение не введено, новый элемент будет отброшен.
Я видел примеры внутренних директив, вызывающих методы приложения директив, но не наоборот.
Есть ли способ сделать это? В качестве альтернативы, есть ли лучший способ для меня построить такой вид?
Это интересное решение, но, к сожалению, это не совсем работает на практике. Я включил ваш код в новый Plunkr и добавил комментарии (app.js: lines 52-61), чтобы объяснить, почему это не идеально: http://plnkr.co/edit/hHACVtZVxchkAopRKdhP?p=preview – BillyBBone
Извините , Я случайно удалил ссылку plnkr.co и не могу редактировать свой комментарий выше. Вот тот же код в JSFiddle: https://jsfiddle.net/z72pb6wc/ – BillyBBone
* самый простой способ гарантировать, что директива будет нарисована до вызова дочерней функции, - это обернуть вызов дочерней функции в '$ timeout '. https: // jsfiddle.net/huvfyvhs/ – Claies