Директива AngularJS с методом, вызываемым извне
Я создал директиву с методом, который должен вызываться из других элементов, которые не являются частью директивы. Однако похоже, что этот метод не выставлен.
Некоторые примеры нефритового кода, чтобы уточнить:
//- a controller for the view itself
div(ng-controller="someController")
//- this is part of the view itself, not within the directive
div(ng-repeat="element in elements")
div(ng-click="methodFromDirective(element)") click element {{$index}} to trigger directive
//- this is the directive
div(some-directive)
someController
Я думаю, здесь не так уж и важно. У него есть методы, но НЕmethodFromDirective(element)
один.methodFromDirective(element)
это метод, который существует только в директиве.
Если я сделаю директиву и включу запись в журнал, я ясно вижу, что он создан. ОднакоmethodFromDirective(element)
Метод не отображается, поэтому вызовы не запускаются должным образом.
methodFromDirective(element)
Сам по себе будет работать только с элементами из шаблона директивы.
некоторый coffeescript, чтобы показать определение директивы (игнорируйте ошибки отступа здесь):
'use strict'
define [], () ->
someDirective = () ->
restrict: 'A'
scope: {
show: '='
}
transclude: false
templateUrl: 'someTemplateHere.html'
controller = ($scope) ->
# exposing the method here
$scope.methodFromDirective(element)->
$scope.theMethod element
link = (scope, element, attr) ->
# this is logged
console.log "init someDirective"
# triggering this method form outside fails
scope.theMethod = (element)->
console.log "method triggered with element", JSON.stringify(element)