2015-09-29 2 views
1

Я использую Bootjack Datepicker и после обновления Dart до 1.12.1, я внезапно вижу только половину календаря без дней и с этим исключением:Dart TreeSanitzer: Нет статического геттера «доверено» объявлено в классе «NodeTreeSanitizer»

Exception: No static getter 'trusted' declared in class 'NodeTreeSanitizer'. NoSuchMethodError: method not found: 'trusted' Receiver: Type: class 'NodeTreeSanitizer'

Это единственная строка кода необходимо подключить календарь:

Calendar.use(); 

Если вам нужно вручную подключить календарь, вы можете вручную вызвать:

Calendar.wire(querySelector("div.calendar")); 

Оба они дают мне исключение в calendar.dart

кода, который, кажется, нарушения является:

void _dayView() { 
    TableElement calBody = element.querySelector('.cnt'); 
    Element dow = calBody.tBodies[0].createFragment(_DOW_TEMPLATE).children[0]; 
    List<Element> children = dow.children; 

    List<String> swkDays = _dfmt.dateSymbols.SHORTWEEKDAYS; 
    int ofs = (_firstDayOfWeek + 1) % 7; 
    //render week days 
    for (int i = swkDays.length; --i >= 0;) { 
     children[i].text = swkDays[(i + ofs) % 7]; 
    } 

    var buffer = new StringBuffer(); 
    for (int i = 6; --i >= 0;) { 
     buffer.write(_DAYROW_TEMPLATE); 
    } 

    calBody.tBodies[0] 
    ..append(dow) 
    ..appendHtml(buffer.toString(), treeSanitizer: NodeTreeSanitizer.trusted); <<<<<<<< ERROR 
    } 

Глядя на appendHtml, я могу видеть treeSanitizer является дополнительными парами, так что синтаксис выглядит хорошо. В абстрактном классе NodeTreeSanitizer, я вижу: static const trusted = const _TrustedHtmlTreeSanitizer();, так что это тоже хорошо.

Любая идея, что может вызвать эту ошибку?

Я зарегистрировал ошибку здесь, в то же время: https://github.com/rikulo/bootjack-datepicker/issues/2

+1

'NodeTreeSaniztizer.trusted' был добавлен только недавно. Откуда у вас эта ошибка? В Dartium или Chrome или и то, и другое? Какую версию Dart вы используете? –

+0

Я вижу это в Dartium, в скомпилированном JS на производстве календарь работает. 'pub --version' 1.12.1. Вы предполагаете, что мой дартиум может быть устаревшим? –

+1

Да, похоже, что ваш дартиум устарел. Вы можете проверить версию Dart в 'about: // version' в Dartium. –

ответ

2

Похоже, ваша версия Dartium устарела.
Пожалуйста, сравните вывод dart --version (командной строки) и версию Дарта на странице about://version в Дартиуме.

+0

Как обновить Dartium? Глядя в '/ usr/local/Cellar/dartium', я вижу несколько десятков версий Dartium, останавливающихся на 1.11.1. 'brew update & brew upgrade dartium' возвращает' Ошибка: нет доступной формулы для dart-lang/dart/dartium'. Удалили ли dartium из Homebrew? –

+1

Я нахожусь в Linux, не знаю о 'brew'. Вы пытались удалить и установить с помощью 'brew install dart --with-dartium',' brew linkapps' (https://github.com/dart-lang/homebrew-dart). Обновление выполняется с помощью 'brew update',' brew upgrade dart'. Если это не сработает, напишите на https://github.com/dart-lang/homebrew-dart/issues –

+1

Да, просто удалил полностью дротик из своей системы и переустановил с помощью специальных флагов. Теперь я вижу Dartium 1.12.1. Раньше это были два отдельных пакета, кажется, что они теперь объединены в один пакет, а опция -with-dartium недоступна в то время, поэтому я никогда не отмечал этот флаг. Спасибо за помощь! –

Смежные вопросы