gpt4 book ai didi

dart - 有两个ng-model指令会导致:达到5个$ digest()迭代。堕胎

转载 作者:行者123 更新时间:2023-12-03 04:07:18 25 4
gpt4 key购买 nike

这是导致Angular-Dart退出无限循环的真正精简版本。我查看了关于stackoverflow的其他每个相关问题,但是我没有取得任何进展。这似乎是一个特别微不足道的实现方式,应该可以起作用……我想念的是什么?

我有两个组件(comp_a和comp_b):

A:

library comp_a;

import 'package:angular/angular.dart';

@NgComponent(
selector: 'comp-a',
template: '<div id="compa"></div>',
publishAs: 'cmp'
)
class CompA {
NgModel _ngModel;

CompA(this._ngModel);
}

B:

library comp_b;

import 'package:angular/angular.dart';

@NgComponent(
selector: 'comp-b',
template: '<div id="compb"></div>',
publishAs: 'cmp'
)
class CompB {
NgModel _ngModel;

CompB(this._ngModel);
}

我的 main() dart文件同样无聊:

library main;

import 'package:angular/angular.dart';
import 'package:loop/component/comp_a.dart';
import 'package:loop/component/comp_b.dart';

class CompModule extends Module {

CompModule() {
type(CompA);
type(CompB);
}
}

void main() {
ngBootstrap(module: new CompModule());
}

正如我的html文件:

<!DOCTYPE html>

<html ng-app>
<body>

<comp-a ng-model="[1]"></comp-a>
<comp-b ng-model="[2]"></comp-b>

<script type="application/dart" src="loop.dart"></script>
<script src="packages/browser/dart.js"></script>
</body>
</html>

如果我同时拥有 <comp-a>...<comp-b>...而没有 ng-model,则效果很好(例如,控制台中没有错误)。如果我有 <comp-a>...<comp-b>...ng-model,则一切正常……仅当它们两个都具有 ng-model时,我才能得到此信息:

5 $digest() iterations reached. Aborting!
Watchers fired in the last 3 iterations: [["ng-model=[1]","ng-model=[2]"],["ng-model=[1]","ng-model=[2]"],["ng-model=[1]","ng-model=[2]"]]

STACKTRACE:
#0 Scope._digestWhileDirtyLoop (package:angular/core/scope.dart:526:5)
#1 Scope.$digest (package:angular/core/scope.dart:475:28)
#2 _autoDigestOnTurnDone (package:angular/core/scope.dart:153:14)
#3 _rootRun (dart:async/zone.dart:688)
#4 _ZoneDelegate.run (dart:async/zone.dart:417)
#5 NgZone._finishTurn (package:angular/core/zone.dart:91:21)
#6 NgZone._onRunBase (package:angular/core/zone.dart:56:43)
#7 _onRun (package:angular/core/zone.dart:61:15)
#8 _ZoneDelegate.run (dart:async/zone.dart:417)
#9 _CustomizedZone.run (dart:async/zone.dart:627)
#10 NgZone.run (package:angular/core/zone.dart:143:27)
#11 ngBootstrap (package:angular/bootstrap.dart:87:18)
#12 main (http://127.0.0.1:3030/loop/web/loop.dart:16:14)

谢谢!

最佳答案

疯狂的猜测
[1] [2]映射到相同的Scope属性(可能是错误),并反复更新彼此的值。 (1、2、1、2、1、2,...)

我会尝试用div标记括住每个元素,并向它们添加一些虚拟 Controller 以隔离范围。

我在这里没有很深的知识。可能有更好的解决方案。

关于dart - 有两个ng-model指令会导致:达到5个$ digest()迭代。堕胎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21744541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com