2017-02-13 89 views
0

我使用的是WebStorm和Dart Angular,并且遇到某种严格或检查模式的问题。禁用Dart Angular中的严格/检查模式

每当我使用默认的WebStorm配置运行应用程序时,我会失败的断言Observer reaction functions should not change model.,boolean expression must not be nulltype 'SubListIterable' is not a subtype of type 'List<Tag>'

据我所知,这是因为Dart VM在检查模式下运行,我想关闭它。如果重要的话,Dartium将推出--no-sandbox --flag-switches-begin --flag-switches-end选项。

当我在Chrome中打开页面时,一切正常,但我当然无法调试。

编辑:第一个错误显然与检查模式无关。这里是什么,我尽量做到一个片段:

List get getCorrectTags { 
    if(this.allowTags) 
    return this.tags.map((t) => t.name).toList(); 
    else 
    return this.contentTags; 
} 

目前的解决办法是这样的:

bool invalidateCorrectTags = false; 
List correctTags = []; 
List get getCorrectTags { 

    if (this.invalidateCorrectTags) { 
    this.invalidateCorrectTags = false; 
    if(this.allowTags) 
     this.correctTags = this.tags.map((t) => t.name).toList(); 
    else 
     this.correctTags = this.contentTags; 
    } 

    return this.correctTags; 
} 

,我必须设置invalidateCorrectTagstrue每个二传手,其中在所说的二传手变化将影响getCorrectTags的结果。有没有更好的方法来做到这一点?

+0

经过模式是为了防止潜在的错误。如何解决问题呢?第一个错误(观察者反应...)与检查模式无关AFAIK。错误很容易解决。 –

+0

如何纠正第一个错误?我理解最后2(类型不匹配)并且已经解决了它们,但是第一个需要在模型获取者中兑现和取消这些钱币。 –

+0

您可以请发布代码。我不知道如何解决我看不到的;-) –

回答