2016-04-26 9 views
0

Dieser Code funktioniert:Verwenden Variable als Ausdruck in ng-beinhalten

<div ng-include src="'Test.html'"></div> 

Dieser Code nicht:

<div ng-include src="ctrl.URL"></div> 

(ctrl.URL wird auf "Test.html"). Ich setze es auch auf 'Test.html' und "'Test.html'" mit den gleichen Ergebnissen.

Wie kann ich dies erfolgreich in einen Ausdruck für die Verwendung in ng-include src konvertieren? Ich denke, ich vermisse etwas Wissen darüber, wie Strings geparst werden, aber ich war mir ziemlich sicher, dass 'Test.html' funktionieren sollte.

Antwort

0

Überprüfen Sie dies, vielleicht wird diese fiddle Ihnen helfen.

HTML und Vorlagen:

<div ng-controller="Ctrl"> 
    <select ng-model="template" ng-options="t.name for t in templates"> 
    <option value="">(blank)</option> 
    </select> 
    url of the template: <tt>{{template.url}}</tt> 
    <hr/> 
    <div ng-include src="template.url" onload='myFunction()'></div> 
    </div> 

<!-- template1.html --> 
<script type="text/ng-template" id="template1.html"> 
    Content of template1.html 
</script> 

<!-- template2.html --> 
<script type="text/ng-template" id="template2.html"> 
    <p ng-class="color">Content of template2.html</p> 
</script> 

Der Controller:

function Ctrl($scope) { 
    $scope.templates = [{ 
     name: 'template1.html', 
     url: 'template1.html'}, 
    { 
     name: 'template2.html', 
     url: 'template2.html'}]; 
    $scope.template = $scope.templates[0]; 

    $scope.myFunction = function() { 
     $scope.color = 'red'; 
    } 
} 
+0

Dies funktioniert, bis ich die String-Variable ändern möchte. Ich definiere eine Zeichenfolge namens URL in meinem Code zu "Test1.html", und dann weise ich diese Variable der Variablen $ scope.templates zu. Es funktioniert nicht, nachdem ich es zugewiesen habe. – Lairinus

1

Ich fand, dass ich zu inkompetent bin meine eigenen Variablen zu umbenennen. ctrl.URL war wirklich ctrl.URl. Jetzt funktioniert alles.

Verwandte Themen