ich einen Controller haben, der wie folgt aussieht:in Angular Controller controllerAs Nehmen Umfang Änderung
angular
.module('app.core')
.controller('TestController', TestController);
TestController.$inject = ['$timeout', '$interval'];
function TestController($timeout, $interval) {
var vm = this;
vm.formHeight = '0px';
$timeout(function() {
var heightCheck = $interval(function() {
var formHeightNew = document.getElementById('form').offsetHeight;
vm.formHeight = formHeightNew + 'px';
}, 500);
}, 2000);
};
So ein Intervall nach 2000 ms beginnt (im Timeout) und danach alle 500 ms ausgeführt wird. Es aktualisiert das Ansichtsmodell bei jeder Iteration mit einem neuen Wert. Die Variable in der HTML-Ansicht scheint nicht zu aktualisieren. Wie lege ich das Update an?
Ich habe versucht, vm.$apply()
hinzufügen und injizieren $ Bereich und dann $scope.$apply()
verwenden, aber keiner scheint zu arbeiten.
Die html verwendet einfach die Variable in einem ngStyle
wie so (man beachte die controllerAs Wert-Test):
<div class="form-wrapper" ng-style="{'height': test.formHeight}">
</div>
Der anfängliche Bindung Wert von '0px' funktioniert, aber die Updates nicht.
Schreiben Sie den HTML-Code .. – Max
@Max ich jetzt die Frage mit dem HTML aktualisiert habe. Ich denke jedoch, dass es kein Problem damit gibt, da der Anfangswert funktioniert, sind es die Bereichsupdates, die ein Problem haben. – Coop
Ändert sich test.formHeight überhaupt? – dfsq