2016-04-08 7 views
0

Benutzerdefinierte Richtlinie verwenden, die TemplateUrl verwendet wird nicht korrekt den Winkel Ausdruck Auswertung, wann immer ich die Richtlinie Last dynamisch versuchen (zB: mit JQuery und $ kompiliert), wie unten:Dynamisch generierte kundenspezifische Richtlinie nicht korrekt geladen, wenn TemplateUrl

var scope = angular.element(document.getElementById("test1")).scope(); 
var _html='<div>{{name}}-</div><mydirectivewithtemplateurl Generated Dynamically Using TemplateUrl >Not Succeed</mydirectivewithtemplateurl>'; 
$('#content').html($compile(_html)(scope)); 

Aber:

1- Wenn ich direkt die gleiche Richtlinie setzen (mit TemplateUrl) in die Seite wie folgt:

<mydirectivewithtemplateurl waytoload="Generated Stastically Using TemplateUrl ">Not Succeed</mydirectivewithtemplateurl> 

Es funktioniert gut.

2- funktioniert auch gut, wenn ich Vorlage anstelle von TemplateUrl und dynamisch geladen auf die gleiche Weise wie oben:

hier ist die benutzerdefinierte Richtlinie Ich verwende TemplateUrl

app.directive('mydirectivewithtemplateurl',function() 
    { 

     return { 
    scope : { 
     loadedstate:'@waytoload', 

    }, 
    //template:'<div>{{loadedstate}}</div>', 
    templateUrl:'grid.html', 

    } 
    }) 

und hier ist die benutzerdefinierte Anweisung, die ich verwende Vorlage:

So meine questi an ist: wie man Winkelausdruck innerhalb der kundenspezifischen Richtlinie richtig zu bewerten, wenn ich TemplateUrl (anstelle von Schablone) verwende und es dynamisch (jquery und @compile) für besseres Verständnis über mein Problem lade bitte sehen Sie die volle Demonstration mit dem code: http://plnkr.co/edit/f2eUdUwQF7o4pMCOHkLw?p=preview und zögern Sie nicht, den Code direkt zu aktualisieren. Bitte beachten Sie: definierte Pfad in TemplateUrl korrekt ist und geprüft wird, wenn

Antwort

0

Etwas todo mit Asynchron-Laden dass Vorlage, Timing könnte ein Problem sein, so verwenden Sie ein Versprechen, versuchen Sie, den Aufruf der Vorlage in eine Link-Funktion und auskommentieren Vorlage URL:

+0

Hallo @Jason, du hast Recht, ich musste auch nur den Umfang hinzufügen. $ apply(); nach der Kompilierung – Nahed

0

Sie könnten versuchen, einen absoluten Pfad direkt zu dieser Seite Dank hinzugefügt:

... 
templateUrl: 'app/directives/mydirective.html' 
... 
+0

Der Pfad ist bereits korrekt definiert, ich habe keine Problem mit dem Pfad, wie Sie die Datei "grid.html" sehen, ist es direkt im root, und diese benutzerdefinierte Direktive wird korrekt geladen, wenn ich direkt auf der Seite mein Problem ist, wenn dynamisch geladen wird der vollständige Code in der Verknüpfung angezeigt wird meine Frage – Nahed

Verwandte Themen