Это касается среды MEAN.js. У меня есть операторы if в моем представлении Angular, чтобы проверить, есть ли у меня какие-либо результаты из моей базы данных. Если есть результаты то я их показываю, если нет то показываю сообщение об ошибке.
У меня проблема с мерцанием кода Angular: когда страница загружается, на долю секунды я вижу сообщение об ошибке, а затем сразу же отображаются результаты из моей базы данных. Директива ng-cloak
не работает.
Код
Ниже я включил очень простой код Angular, который должен прояснить, что я делаю.
Контроллер:
// Return a specific person from the database.
this.person = Persons.get({
personId: $stateParams.personId
});
Вид:
<div ng-if="personCtrl.person.length">
<!-- Show person's details here... -->
</div>
<div ng-if="!personCtrl.person.length" ng-cloak>
<p>Sorry, person could not be found.</p>
</div>
Я попытался добавить директиву ng-cloak
, которая не работает. MEAN.js также использует Bootstrap и предоставляет несколько классов CSS, но независимо от того, какие из них я добавляю, ни один из них не работает:
[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak {
display: none !important;
}
Вкратце: я могу добавить директиву ng-cloak
И класс CSS ng-cloak
, но они не работают. Я могу добавить style="display:none;"
, но это скроет сообщение об ошибке, даже если оно должно отображаться.
personCtrl.person=[]
, а затем ответ на вызов ajax делает его нулевым - person Pankaj Parkar   schedule 28.04.2015<head>
. Я также добавилng-cloak
к моему тегу<body>
. - person Tom   schedule 28.04.2015ng-cloak
предотвращает вывод необработанных выражений. он не мог предотвратить отображение вашего ложного утвержденияng-if
; если бы это было так, как бы он узнал, когда правильно отображать его, а когда нет? в вашем коде выражение оценивалось, оно просто не дало ожидаемого результата.ng-cloak
не взаимодействует с обещаниями или$http
/$resource
, чтобы определить, что результат может измениться позже.... - person Claies   schedule 29.04.2015