私はAngularJSコントローラのスコープ変数として非常に階層的なJSON構造を持っています。私はその変数のさまざまなセクションの周りをループしたい。私はng-init
を使って構造体のどこにあるのかを考えました。ここではいくつかのコードは次のとおりです。AngularJS:ng-initの使用をはっきりと理解していません
my_app.js:
(function() {
var app = angular.module("my_app");
app.controller("MyController", [ "$scope", function($scope) {
$scope.things = {
name: "a",
children: [
{
name: "a.a",
children: [
{ name: "a.a.a" },
{ name: "a.a.b" }
]
},
{
name: "a.b",
children: [
{ name: "a.b.a" },
{ name: "a.b.b" }
]
}
]
}
}]);
});
my_template.html:
<div ng-app="my_app" ng-controller="MyController">
<ul>
<li ng-init="current_thing=things.children[0]" ng-repeat="thing in current_thing.children>
{{ thing.name }}
</li>
</ul>
</div>
私は、これはリストを表示するには期待:
a.a.b
もちろん、ループを明示的に指定すると(ng-repeat="thing in things.children[0].children"
)、うまく動作します。しかし、テンプレートコードのほんの少しのスニペットは、私のアプリケーションのさまざまなレベルでさまざまなレベルの「もの」で実行する必要があります。
(ただ、人生が複雑にするために、私はDjangoの賢さを経由して他の標準のJavaScriptまたはを使用して、現在のもののレベルを取得することができます。)
任意のアイデア?
ありがとう。これでこのおもちゃの例が修正されました。しかし、実際のコードではまだ動作していません。私はもう少し考えをして、あなたに戻ってくる必要があります。 – trubliphone
私の喜び。原則は同じでなければなりません。しかし、ng-initはコストがかかり、主にデバッグしています。バッキングコントローラの適切なデータ構造に対してng-initをデバッグするのはずっと難しくなります。 –