AngularJS-Direktiven sind fehlerhaft - Die Eigenschaft 'compile' von undefined kann nicht gelesen werden

8

Eröffne AngularJS und versuche, eine einfache Direktive zu erstellen. Der Code schlägt mit a fehl TypeError: Die Eigenschaft 'compile' von undefined kann nicht gelesen werden. Irgendwelche Vorschläge würden sehr geschätzt werden.

JS

%Vor%

HTML

%Vor%

Sie finden den Code und den Fehler hier Ссылка

    
user275157 09.04.2015, 18:25
quelle

4 Antworten

30

Es ist nur Ihre Rückkehr Aussage.

Schlecht:

%Vor%

Gut:

%Vor%

Besser:

%Vor%     
Dylan Watt 09.04.2015, 18:32
quelle
1

Dies ist kein Problem von Angular, aber es ist die Art und Weise, wie Javascript-Syntaxen geschrieben und ausgeführt werden. Ich habe ein einfaches Video erstellt, das dieses Problem genauer veranschaulicht. Sie können dieses Video von diesem Link sehen.

Ссылка

Jetzt für die lange Antwort. In Javascript "zurückgeben" und "zurückgeben" sind eins gleich und "{}" ist eine anonyme Funktion.

Wenn Sie return und "{" in der nächsten Zeile schreiben, gibt es zwei Return-Anweisungen und "{}" eine anonyme Funktion. Das Programm kehrt von der "Return" -Syntax zurück und der Code innerhalb der geschweiften Klammer wird nie ausgeführt wir können sagen, es ist ein unerreichbarer Code. So gibt es "undefined" zurück.

%Vor%

Wenn Sie die geschweifte Klammer direkt nach der Rückkehranweisung schreiben, behandelt sie sie als einen Codeblock und führt den Code innerhalb der geschweiften Klammer aus.

%Vor%

Es geht also darum, wo sich Ihre geschweifte Klammer nach der return-Anweisung befindet.

    
Shivprasad Koirala 01.01.2016 12:40
quelle
0

Sie haben auch AngularJs 1.0.0 erwähnt, das zu alt war, ich habe es auf 1.1

aktualisiert

Ändern Sie die Direktive zu diesem

%Vor%

Arbeitsgeige

    
Pankaj Parkar 09.04.2015 18:28
quelle
0

xx.directive ('myFoo',

Funktion () {     var obje = {         restrict: 'A', // default es ist nicht nötig es zu deklarieren.         Vorlage: '23' Rückkehr obje;     } });

    
ravinder 24.03.2017 12:05
quelle