Ich lerne gerade AngularJS.Aktualisierung ng-repeat bei Datenänderung
Ich bin fest, versucht zu aktualisieren eine Reihe von Schaltflächen, die ich von einer Direktive generiert habe, wenn die Objektdaten aktualisiert werden.
Ich habe eine Reihe von Beiträgen gelesen, die ähnliche Probleme behandeln, bei denen Daten, die nicht in einer Direktive erstellt werden, nicht vergeblich aktualisiert werden.
HTML
<body>
<div id="application" data-ng-app="ApplicationDirective" ng-controller="ApplicationController" class="container-fluid">
<side-panel class="col-lg-2"></side-panel>
<div ng-controller="HomeController" class="content col-lg-10">
</div>
</div>
</body>
Wie Sie habe ich 2 Controller definiert sehen können. 1 ApplicaitonControler
, um die Anwendung als Ganzes zu verwalten und dann eine zweite HomeController
, um einen inneren Abschnitt der HMTL zu verwalten.
Ich habe dann eine Direktive, die eine Reihe von Tasten für eine Seitenwand erzeugt.
var app = angular.module('ApplicationDirective', []);
app.directive("sidePanel", function() {
return {
restrict: "E",
template : "<div>" +
"<input ng-repeat='btn in sidePanelButtons' type='button' value={{btn.value}}>" +
"</div>"
};
});
$scope
Die Daten für die oben in der ApplicationContoller
definiert. Dann aktualisiere ich die Daten in HomeController
.
app.controller("HomeController", function($scope) {
$scope.sidePanelButtons = $scope.sidePanelButtons.concat([
{value:"TEST"}
]);
});
An diesem Punkt, wenn ich die sidePanelButtons var log dann kann ich sehen, dass die Daten erfolgreich angehängt wurde, aber nichts in den HTML-Änderungen ?.
Ich habe versucht, mit $ Scope. $ Apply-Methode, aber ich bekomme eine error.
Möglicherweise habe ich die falsche Design-Methoden, so dass jede Hilfe geschätzt werden würde.
Als einen kurzen Hinweis: Versuchen Sie stattdessen eine '$ Timeout '. Es wird automatisch ein '$ scope. $ Apply' ausgeführt. – Beat