Я использую WebStorm и Dart Angular, и у меня возникают проблемы с каким-то строгим или проверенным режимом.
Всякий раз, когда я запускаю приложение, используя конфигурацию WebStorm по умолчанию, я получаю ошибочные утверждения Observer reaction functions should not change model.
, boolean expression must not be null
и type 'SubListIterable' is not a subtype of type 'List<Tag>'
.
Насколько я понимаю, это происходит из-за того, что Dart VM работает в проверенном режиме, и я хотел бы его отключить. Dartium запускается с опциями --no-sandbox --flag-switches-begin --flag-switches-end
, если это важно.
Когда я открываю страницу в Chrome, все в порядке, но, конечно, я не могу отладить.
РЕДАКТИРОВАТЬ: 1-я ошибка, по-видимому, не связана с проверенным режимом. Вот фрагмент того, чего я пытаюсь достичь:
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;
}
и я должен установить invalidateCorrectTags
в true
в каждом установщике, где изменения в указанном установщике повлияют на результат getCorrectTags. Есть ли лучший способ сделать это?
angular2
. Какую версию Angular вы используете? - person Günter Zöchbauer   schedule 13.02.2017this.correctTags = this.tags.map((t) => t.name).toList();
приводит к тому, что новый объект (List
) назначаетсяcorrectTags
. Не понятно, как вы его используете. Если вы привязываетесь кcorrectTags
, все должно работать нормально. Если вы привязываетесь кgetCorrectTags
, то нет. - person Günter Zöchbauer   schedule 13.02.2017assert(identical(getCorrectTags(), getCorrectTags()));
. Если вы не получили ошибку для этого кода, значит, вы все сделали правильно (используйте вместоgetCorrectTags()
то, к чему привязываетесь в представлении). - person Günter Zöchbauer   schedule 13.02.2017