Ich habe folgenden Code:
<div ng-repeat="module in modules" id="{{module.Id}}">
<ng-include ng-init="bootstrapModule(module.Id)" src=""></ng-include>
</div>
Ich möchte in der Lage sein, einen String in src wie folgt zu erstellen:
/modules/{{module.Name}}/{{module.Name}}.tpl.html
Aber ich treffe immer wieder Straßensperren. Ich habe versucht, eine Rückruffunktion zu verwenden, um es zu erstellen,
$scope.constructTemplateUrl = function(id) {
return '/modules/' + id + '/' + id + '.tpl.html';
}
Aber dies wird immer und immer und immer wieder aufgerufen und es scheint nicht so zu sein. Ich habe auch versucht, es so zu konstruieren:
ng-src="/modules/{{module.Id}}/{{module.Id}}.tpl.html"
Aber das funktioniert auch nicht. Anstatt stundenlang um den heißen Brei herumzureden, habe ich mich gefragt, ob noch jemand auf so etwas gestoßen ist und irgendwelche Ideen hat.
Außerdem, wenn ich die Module von $ resource hole, gebe ich sie asynchron mit $ q zurück, so dass ich es scheinbar nicht durchgehen und sie in die Module vor dem Controller einfügen kann, da $scope.modules
Nur einem then
entspricht. Funktion an diesem Punkt.
Irgendwelche Ideen?
ngInclude | src
Direktive erfordert einen angular Ausdruck, was bedeutet, dass Sie wahrscheinlich schreiben sollten
ng-src="'/modules/' + module.Id + '/tpl.html'"
From http://docs.angularjs.org/api/ng.directive:ngInclude
ngInclude | src string angular Ausdruck, der als URL ausgewertet wird. Wenn die Quelle eine Zeichenfolgenkonstante ist, stellen Sie sicher, dass Sie sie in Anführungszeichen setzen, z. B. src = "'myPartialTemplate.html'".
Es ist möglicherweise besser, wenn Sie die URL im Modell anstelle von Inline-HTML erstellen
<div ng-repeat="module in modules" id="{{module.Id}}">
<ng-include src="module.url"></ng-include>
</div>