Привязать угловую модель 2 к раскрытию полимера

Я решил занять некоторое время в эти выходные, чтобы посмотреть на Angular 2 и Polymer. Я действительно заинтересован в angular 2 и очень хотел бы начать что-то строить с ним. Недостатком начала работы с Angular 2 является то, что пока нет хорошей библиотеки компонентов. Однако, поскольку Angular 2 утверждает, что он должен так хорошо работать вместе с веб-компонентами, я решил попробовать Polymer. Мне удалось связать данные с простыми компонентами, такими как поле ввода. На данный момент я застрял в том, как привязать модель к выбранному объекту в раскрывающемся меню бумаги. Поскольку я очень новичок в обоих, я не знаю, как это сделать, но это то, что я пробовал до сих пор. Кто-нибудь достиг, чтобы связать угловую модель 2 с выпадением полимера?

<paper-dropdown-menu  >
   <paper-menu class="dropdown-content" valueattr="id" [(ng-model)]="model">
       <paper-item *ng-for="#m of options" id="{{m.id}}" (click)="onClick()">{{m.name}}</paper-item>
   </paper-menu>
</paper-dropdown-menu>

РЕДАКТИРОВАТЬ: я теперь создал ValueAccessor, который, кажется, работает приемлемо с одним исключением. Я пытаюсь получить в раскрывающемся списке предварительно выбранное значение, установив выбранный атрибут в методе writeValue. Сначала это работало, но после внесения изменений я уже не могу изменить выбранное значение. Это работает, если я жестко закодировал значение в шаблоне, так что, похоже, что-то связано с угловым вместе с полимером. Я попытался следовать трассировке стека и сравнить разницу между ними. Когда я жестко кодирую значение, выполняется метод установки для выбранного, который запускает событие выбора элемента. Когда я следую той же трассировке, когда устанавливаю свойство в valueAccessor, метод установки больше не выполняется. Кажется, есть проблема с взаимодействием между угловым 2 и полимером.

import {Directive, ControlValueAccessor, ElementRef, Renderer, NG_VALUE_ACCESSOR, Provider, forwardRef} from "angular2/angular2"
import {isBlank, CONST_EXPR} from 'angular2/src/facade/lang';
import {setProperty} from "angular2/src/common/forms/directives/shared"

const PAPER_DROPDOWN_VALUE_ACCESSOR = CONST_EXPR(new Provider(
    NG_VALUE_ACCESSOR, {useExisting: forwardRef(() => PaperDrowpdownMenuAccessor), multi: true}));

@Directive({
  selector: 'paper-menu[ng-model]',
  bindings: [PAPER_DROPDOWN_VALUE_ACCESSOR]
})
export class PaperDrowpdownMenuAccessor implements ControlValueAccessor {

  onChange = (_) => {};
  onTouched = () => {};

  constructor(private _renderer: Renderer, private _elementRef: ElementRef) {
    var self = this;
    this._elementRef.nativeElement.addEventListener('iron-select', function(e, v, s){
      console.log(e.target.selected);
      self.onChange(e.target.selected);
    });
  }

  writeValue(value: any): void {
    if(value){
      if(this._elementRef.nativeElement.select) {
        this._elementRef.nativeElement.select(value);
      }
      else {
        //this._elementRef.nativeElement.attributes["selected"]
        setProperty(this._renderer, this._elementRef, 'selected', value);
      }
    }       
  }

  registerOnChange(fn: () => any): void { 
    this.onChange = fn; 
  }
  registerOnTouched(fn: () => any): void { this.onTouched = fn; }
}

Ответы на вопрос(1)

Ваш ответ на вопрос