AngularJS-Direktive mit der Methode von außerhalb aufgerufen

Ich erstellt eine Richtlinie mit einer Methode, die aufgerufen werden soll von anderen Elementen, die nicht Teil der Richtlinie. Aber wie es aussieht, ist diese Methode nicht ausgesetzt.

Einige Beispiel-jade-code zu klären:

//- 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)

Den someController ist nicht allzu wichtig hier, denke ich. Es verfügt über Methoden, aber NICHT die methodFromDirective(element) ein. Die methodFromDirective(element) ist eine Methode, die existiert nur in der Richtlinie.

Wenn ich eine Richtlinie und legte einige logging auf die Schaffung ich kann deutlich sehen, dass es erstellt. Aber die methodFromDirective(element) Methode, nicht ausgesetzt, so dass die Anrufe nicht korrekt ausgelöst.

Den methodFromDirective(element) sich nur an Elemente aus der Richtlinie Vorlage.

einige coffeescript zu zeigen, die definition der Richtlinie (ignorieren Einrückung Fehler hier):

'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)
InformationsquelleAutor hcpl | 2014-01-18
Schreibe einen Kommentar