AngularJS denetleyicimde bir kapsam değişkeni olarak son derece hiyerarşik JSON yapısına sahibim. Bu değişkenin farklı bölümleri etrafında dolaşmak istiyorum. Yaptığım yapıyı belirtmek için ng-init
kullanmayı düşündüm.AngularJS: Açıkça anlamıyorum ng-init kullanımını anlamadım
my_app.js: İşte bazı kod
(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>
Bunun bir listesini görüntülemek için beklenir
a.a.b
a.a.a Ama hiçbir şey göstermez.Elbette, döngüyü açıkça belirtirsem (ng-repeat="thing in things.children[0].children"
), gayet iyi çalışıyor. Ancak şablon kodunun bu küçük pasajı, uygulamamın çeşitli noktalarında çeşitli şeylerde çalıştırılmalıdır.
(Sadece Django zeka yoluyla başka standart JavaScript veya kullanarak mevcut şey seviyesini alabilirsiniz, hayat karmaşık hale getirmek için.)
Herhangi bir fikir?
Teşekkür ederiz. Bu oyuncak örneğini düzeltti. Yine de gerçek kodda çalışmıyor. Biraz daha düşünmem gerekiyor ve belki sana döneceğim. – trubliphone
Zevklerim. İlkeler aynı olmalıdır. Bununla birlikte, ng-init bir maliyetle geliyor ve büyük ölçüde hata ayıklama olduğunu unutmayın. Bir destek denetleyicisinde uygun veri yapıları üzerinde ng-init hata ayıklaması çok daha zordur. –