Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用生成器在AngularJS中使用ng repeat进行迭代未按预期工作_Javascript_Angularjs_Iterator_Angularjs Ng Repeat_Generator - Fatal编程技术网

Javascript 使用生成器在AngularJS中使用ng repeat进行迭代未按预期工作

Javascript 使用生成器在AngularJS中使用ng repeat进行迭代未按预期工作,javascript,angularjs,iterator,angularjs-ng-repeat,generator,Javascript,Angularjs,Iterator,Angularjs Ng Repeat,Generator,AngularJS中的ng repeat似乎不适用于生成器函数。它在控制器中按预期工作,但在HTML表达式中使用时,生成器似乎已经终止。你们能给一个有棱角的傻瓜解释一下这里发生了什么魔法吗 function Main($scope) { $scope.items = function*() { //console.log(1); yield 1; //console.log(2); yield 2; return null; }(); //co

AngularJS中的ng repeat似乎不适用于生成器函数。它在控制器中按预期工作,但在HTML表达式中使用时,生成器似乎已经终止。你们能给一个有棱角的傻瓜解释一下这里发生了什么魔法吗

function Main($scope) {
  $scope.items = function*() {
    //console.log(1);
    yield 1;
    //console.log(2);
    yield 2;
    return null;
  }();
  //console.log($scope.items);
  //console.log($scope.items.next().value);
  //console.log($scope.items.next().value);
}


<div ng-app ng-controller="Main">
  <h2>{{items.next()}}</h2>
  <div ng-repeat="item in items">
    Hi {{item}}
  </div>
</div>
函数主($scope){
$scope.items=函数*(){
//控制台日志(1);
产量1;
//控制台日志(2);
产量2;
返回null;
}();
//log($scope.items);
//log($scope.items.next().value);
//log($scope.items.next().value);
}
{{items.next()}}
你好{{item}

为了让生成器函数返回一个可以迭代的生成器,应该使用
items()
调用它,
items
只是一个函数。在这种情况下,这仍然不起作用

(生成器就是其中之一)意味着在遗留JS循环中经过特殊处理进行迭代,这涉及到监视
generator.next().done
状态以结束循环。loop用于透明地处理不溶物

生成器不具有
length
属性,也不一定是有限的
ngRepeat
通过使用
length
属性在对象键或
for
循环中迭代,它不知道iterables/generators


如果生成器是有限的,则应先将其转换为数组,然后再将其馈送到
ngRepeat

,以便生成器函数返回可以迭代的生成器,应使用
items()
调用它,
items
只是一个函数。在这种情况下,这仍然不起作用

(生成器就是其中之一)意味着在遗留JS循环中经过特殊处理进行迭代,这涉及到监视
generator.next().done
状态以结束循环。loop用于透明地处理不溶物

生成器不具有
length
属性,也不一定是有限的
ngRepeat
通过使用
length
属性在对象键或
for
循环中迭代,它不知道iterables/generators

如果生成器是有限的,则应先将其转换为阵列,然后再将其馈送到
ngRepeat