В AngularJS вы можете сделать кнопку, чтобы вызвать действие, как это:Как вызвать действие пользовательской директивы в AngularJS?
<div ng-controller="myController">
<button ng-click="onButtonClicked()">Click me</button>
</div>
Итак, я вставить пользовательскую директиву так:
и в связи функции I my-canvas.js
ДИРЕКТИВА файла замените тег на холст KineticJS
. Затем пользователь манипулирует холстом, перетаскивая фигуры Kinetic
и, наконец, когда пользователь делает с фигурами то, что он должен делать, я хочу, чтобы директива вызывала действие, определенное на myController
. Я думаю о чем-то вроде этого:
<div ng-controller="myController">
<my-canvas ng-success="onScenarioSuccess" />
</div>
но я не могу понять, как правильно это сделать.
Как я могу сделать директиву, чтобы вызвать ее действие/событие программно?
Почему это преимущество? Что я теряю, используя изолированную область? –
Изолированные области могут стать более сложными для управления, когда у них есть внутренний html. Если внутренний html происходит от родителя (ng-transclude), он принимает родительскую область. Во внутреннем html - это шаблон html директивы, тогда он принимает изолированную область. Изолированные области имеют смысл, когда вы создаете свою директиву как компонент, который имеет свой собственный интерфейс. Если вы делаете то же самое, вы можете продолжать использовать изолированную область. – Chandermani
@ErikEscobedo вы ничего не теряете, используя изолированный объем, на самом деле вы получаете совсем немного. Изолированная область - все о возможности повторного использования, другими словами директива не полагается на родительскую область для работы, и вы не можете случайно изменить что-либо в родительской области и т. Д. Изолированная область несколько сложнее понять сначала, но ИМХО - это один основных концепций, чтобы овладеть, чтобы действительно получить преимущества от директив. Есть много онлайн-материалов, посвященных этой теме, чтобы вы могли ускориться. – Beyers