2016-07-25 7 views
1

Ich benutze Django 1.9 und AngularJS 1.5.Die Direktive rendert HTML, bevor eine Variable einen Wert erhält

Meine Django-Ansicht sieht wie folgt aus:

#hello_world_view.py 
def hello_world(request): 
    t = get_template('hello-world.html') 
    return HttpResponse(t.render()) 

Die HTML-Datei wie folgt aussieht:

<-- loading JavaScript files above --> 
<helloWorld><HelloWorld> 

Der AngularJS Controller ein Versprechen hat, die Daten aus dem Django-REST-API abruft. Es sieht so etwas wie dieses

helloWorld.controller('helloWorldController', 
    function($scope, $helloWorldService1, $helloWorldService2) { 
     Promise.all([$hWService1, $hWService2]).then(function(response) { 
      $scope.service1 = response[0]; 
      $scope.service2 = response[1]; 
     }); 
    }); 

die Richtlinie wie folgt aussieht:

// helloWorld is already defined as an app. 
helloWorld.directive('helloWorldDirective', function() { 
    return { 
     restrict:'E', 
     link: function($scope, $elements, $attributes) { 
      $scope.$watch('someVariable', function(data) { 
       if (data) { 
        $elements.text(data); 
       } 
      }, true); 
     }, 
     templateUrl: '/static/partials/some-template.html' 
    } 
}); 

Einige Vorlage hat Variablen im Inneren, die auf das Versprechen von der Steuerung abhängig sind aufgelöst werden. Allerdings, wenn ich es über prüfe.

>>> python manage.py runserver 

Die Variablen werden nicht gerendert. Ich habe bereits die Tags von {{}} zu [[]] für angularJS geändert, sodass ich weiß, dass Django nicht versehentlich versucht, diese Variablen zu rendern.

Ist was ich gerade mache möglich? Wenn ja, gibt es eine Lösung? Vielen Dank.

EDIT: feste Grammatik.

Antwort

0

Sieht so aus, als müssten Sie den Controller für die Anweisung registrieren. Versuchen Sie Folgendes hinzuzufügen:

Controller: 'HelloWorldController' auf das Rückgabeobjekt der Richtlinie.

+0

Fertig, aber es sieht nicht wie es geholfen hat ... Danke, obwohl! –

Verwandte Themen