Я начал использовать AngularJS и хотел использовать цикл foreach, подобный этому
<div class="project" ng-hide="loading" ng-repeat="project in projects">
<a href="projects/[[ project.slug ]]">[[ project.name ]] »</a>
<p>{{ trans('project.description') }}: [[ project.description ]]</p>
<hr>
</div>
Эта переменная заполняется этим кодом.
Project.get()
.success(function(data) {
$scope.projects = data;
$scope.loading = false;
});
а также
get : function() {
return $http.get('/api/projects');
},
Когда я перехожу к сайту, он работает без проблем. Данные оцениваются и отображаются нормально.
Но, когда я делаю перезагрузку страницы (Command + R), я могу видеть код AngularJS на долю секунды на странице, то есть пользователь может видеть [[ project.name ]]
и т.д. Вместо оцененного кода, Что может быть причиной этого? это нормальное поведение? Вначале ng-hide
устанавливается в false, через $scope.loading = true;
, переменная, которая установлена в значение false в методе успеха Project.get()
Я думаю, что этого должно быть достаточно кода, если вам нужно больше, скажите мне, и я предоставил вам полный код.
Поскольку там есть запрос ajax, у вас не будет сразу занесен объект javascript, так что там появится местозаполнитель.
У вас есть несколько вариантов:
<p ng-bind="[[ project.description ]]"></p>
? Это верно?