Я пытаюсь связать с логической переменной в области моего контроллера, чтобы указать, должна ли отображаться анимация загрузки. Однако следующий код не работает. Выполняется функция внутри $timeout
, но представление не обновляется.Связывание с примитивным значением на контроллере
Когда я проверяю область применения с помощью хромированного углового удлинения, я вижу, что ctrl.loading
является true
.
Это из-за булевых элементов, являющихся типами значений в javascript, в отличие от ссылочных типов?
Я предполагаю, что представление буквально обязательное для true
, а не для местоположения логического значения, которое изменилось бы.
Как получить представление для привязки к переменной, а не к значению, исходная переменная изначально?
контроллер:
function TestController($scope,$timeout){
"use strict";
var loading=true;
$timeout(function(){
loading=false;
}, 1000);
return {
loading:loading
}
}
шаблон:
<div>
<h1 ng-show="ctrl.loading">Loading</h1>
<h1 ng-hide="ctrl.loading">Not Loading</h1>
</div>
abovecode это всего лишь пример, на самом деле я бы установить значение после того, как запрос прибудет wqas вернулся.
$http.get().then(function() {
loading=false;
}, function() {
loading=false;
})
, но эффект такой же.
это не должно быть '$ scope.ctrl.loading = false' вместо 'load = false'? – Titus