2016-04-13 8 views
0

Es gibt die folgenden Code (Jade):dynamisch ändern ng-wenn in benutzerdefinierter Richtlinie

img(
     data-ng-src = "{{ ctrl.getAttachmentPreview(attachment) }}", 
     data-ng-if = "attachment.media_type == 'image'", 
     data-image-error = "xxx" 
    ) 

Und meine benutzerdefinierte Richtlinie (Kaffee):

module.exports = (app) -> 
    app.directive 'imageError', -> 
    restrict: 'A', 
    link: ($scope, el, attrs, ctrl) -> 
     el.attr('data-ng-if', 'false') 

Es ist ein Prototyp. Ich möchte Element in meiner benutzerdefinierten Direktive mit 'ng-if' ausblenden, aber dieser Code funktioniert nicht (Element hat 'Data-ng-if' mit 'false' Wert, aber immer noch sichtbar). Wie kann ich es reparieren? Vielen Dank im Voraus

+2

Attribut Einstellung ist nicht genug, müssen Sie HTML kompilieren. – dfsq

+0

Bitte geben Sie das Code-Beispiel bitte – malcoauri

+0

@dfsq Bitte, bitte antworte bitte – malcoauri

Antwort

0

ng-wenn Angular angewiesen ist, die $scope zu beobachten und den angegebenen Ausdruck zu bewerten, wenn die $scope es ändert, einschließlich DOM-Knoten abhängig vom Ergebnis.

Direkte Manipulation wird nichts tun.

stattdessen den $ scope manipulieren:

module.exports = (app) -> 
    app.directive 'imageError', -> 
    restrict: 'A', 
    link: ($scope, el, attrs, ctrl) -> 
     $scope.attachment = media_type: 'image'