0
ジェネレータ:AngularJS、mdList、NGリピートや発電
$scope.inside = [...];
var generator = function*() {
var l = Math.ceil($scope.inside.length/3);
for (var i = 0; i < 3; i++) {
yield $scope.inside.slice(l * i, l * (i + 1));
}
};
$scope.insideDivided = generator();
テンプレート:
<md-list flex ng-repeat="column in [1,2,3]">
<md-list-item ng-click="log(button.url)" ng-repeat="button in insideDivided.next().value">
{{log(button)}}
{{button.title}}
</md-list-item>
</md-list>
命令{{log(button)}}
が
Object {title: "someTitle1", url: "/inside/fake.html", $$hashKey: "object:13"} root.js:100
Object {title: "someTitle2", url: "/inside/fake.html", $$hashKey: "object:14"} root.js:100
Object {title: "someTitle3", url: "/inside/fake.html", $$hashKey: "object:15"}
....
を慰めるために、正しい項目を書くしかし、唯一の空の<md-list>
<!-- ngRepeat: column in [1,2,3] --><md-list flex="" ng-repeat="column in [1,2,3]" role="list" class="ng-binding ng-scope flex">
<!-- ngRepeat: button in insideDivided.next().value -->
</md-list><!-- end ngRepeat: column in [1,2,3] --><md-list flex="" ng-repeat="column in [1,2,3]" role="list" class="ng-binding ng-scope flex">
<!-- ngRepeat: button in insideDivided.next().value -->
</md-list><!-- end ngRepeat: column in [1,2,3] --><md-list flex="" ng-repeat="column in [1,2,3]" role="list" class="ng-binding ng-scope flex">
<!-- ngRepeat: button in insideDivided.next().value -->
</md-list><!-- end ngRepeat: column in [1,2,3] -->
なぜng-repeat
が機能するのですか?create md-list-item
?
PS「あなたの投稿が主にコードであるように見えるので、いくつかの詳細を追加してください。
ジェネレータは、 'Object {value:yielded_value、done:false} 'のようなオブジェクトを返します。これを反復すると、 'yielded_value'と' false'で2つのステップが発生します。私の場合、 'yielded_value'は反復のための配列です – rjhdby
@rjhdby私の更新された答えをご覧ください。 ngRepeatはジェネレータ関数を使用できません。最初に配列に値をプッシュし、代わりにngRepeatを反復処理する必要があります。 – adam0101