現在、私はAngularJSを学んでいます。データ変更時にng-repeatを更新します
私は、私は、オブジェクトのデータが更新されるディレクティブから生成した一連のボタンを更新しようとして立ち往生しています。
私はディレクティブで作成されていないデータが無駄に更新されない場所のために同様の問題に対処する記事の数を読みました。
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>
あなたは、私は2つのコントローラを定義している見ることができるように。 1 ApplicaitonControler
を使用してアプリケーション全体を管理し、次にHomeController
を使用してHMTLの内部セクションを管理します。
次に、サイドパネル用の一連のボタンを生成するディレクティブがあります。上記ApplicationContoller
で定義されているため
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
データ。次に、HomeController
のデータを更新します。この時点で
app.controller("HomeController", function($scope) {
$scope.sidePanelButtons = $scope.sidePanelButtons.concat([
{value:"TEST"}
]);
});
、私はsidePanelButtonsのVARをログインした場合、私はHTMLの変更では何もしかし、データが正常に追加されたことを見ることはできません?。私は$スコープを使用して試してみました。$方法を適用
は、しかし、私はerrorを取得します。
潜在的に私は間違った設計方法論を持っているので、任意の助けいただければ幸いです。
を参考にしてください:代わりに '$ timeout'を試してください。 '$ scope。$ apply'を自動的に行っています。 – Beat