2015-05-22 3 views
0

Я использую угловой для переднего конца и Python-Django в качестве backend. Я обрабатываю HTML в python, используя TemplateResponse(), и этот ответ затем отправляется на угловую реакцию, где я храню это в некотором $scope variable. Важная вещь здесь: HTML, который я рендеринг в PYthon включает Css, Js, HTML + Угловой код. например,Re render content in angular

<div ng-repeat='val in values'> 
    <span>{{ val }}</span> 
</div> 

Теперь Python сделает этот код (включает в себя гораздо больше, но это образец) и отправить ответ на угловой (я буду также передавать эти значения, данные из питона), где я буду хранить это в $ объеме ,

$scope.html_response = response sent from Python 
$scope.values = values data from python (it will be a object so angular can loop over this easily) 

У меня есть все в угловом HTMl + Angular Scope, которое используется в HTML. Теперь главное, как связать их вместе, чтобы HTML получал угловую область и петлю над данными. Для этого я использую угловую директиву.

HTML:

<div dynamic="html_response"></div> 

Угловая директива:

app.directive('dynamic', function ($compile) { 
    return { 
    restrict: 'A', 
    replace: true, 
    link: function (scope, ele, attrs) { 
     scope.$watch(attrs.dynamic, function(html) { 
     ele.html(html); 
     $compile(ele.contents())(scope); 
     }); 
    } 
    }; 
}); 

Эта директива делает связывание угловой рамки с HTML для меня.

Все работало для меня, пока у меня не возникла одна проблема. Как я объяснил выше, я сначала обрабатываю HTML, а затем привязываю угловую область. Но в одном из моих случаев (слайдер js) мне нужно сначала сделать угловое изображение, а затем отобразить HTML (js-код), так как слайдер js должен отображать после углового, так что слайдер уже может иметь доступные данные.

Но я не могу отображать угловые данные с первой стороны python. Я должен отправить HTML-ответ на угловое, что он включает.

Является ли их любым другим подходом или чем-то, что я могу сделать с угловым концом, чтобы я мог решить мою проблему.

+0

Когда вы печатаете '{{val}}' - это значение из углового или джанго? – Gocht

+0

@Gocht Его угловой, я знаю как hv такой же syntex, и thats by я изменил угловой syntex. Я фактически использую этот syntex '{$ val $}', но heree я написал '{{val}}', так что угловые dev не путают, что я использую неправильный syntex. – saf

ответ

0

Один из подходов, который вы можете предпринять, - это отделить визуализацию HTML/CSS/JS от самих данных.

Вы можете добиться этого, сначала создав HTML/CSS/JS в Python и получив Angular, затем извлеките данные (в формате JSON?), Необходимые для слайдера JS из бэкэнда Django и визуализируйте его. Это означает, что у вас есть 2 доступа к бэкэнд - один для самой страницы, а другой для данных, необходимых для этой страницы.

+0

Спасибо за ваше предложение. Я обязательно рассмотрю этот подход – saf