我正在尝试ng-model
在 angulardart 中使用多项选择。option
选择由 by动态填充django-autocomplete-light
。一旦我添加了一些选项,我的(列表)模型仍然是空的。
有什么我可以看的吗?
这是一个最小的例子。
模板:
<span id="id_car-wrapper"
class="modern-style autocomplete-light-widget"
data-widget-bootstrap="normal"
data-widget-maximum-values="4" data-widget-ready="1">
<span id="id_expert-deck" class="deck"></span>
<input
type="text"
name="car-autocomplete"
id="id_car-autocomplete" value=""
class="autocomplete"
data-autocomplete-choice-selector="[data-value]"
data-autocomplete-minimum-characters="1"
data-autocomplete-url="/autocomplete/CarAutocomplete/"
placeholder="car's name" autocomplete="off">
<select style="display: none" class="value-select"
name="cars" id="id_expert" multiple="multiple"
ng-model="myctrl.cars"></select>
控制器:
@NgController(
selector: '[a-selector]',
publishAs: 'myctrl')
class MyController {
List<String> cars;
}
编辑:根据 Günter 的回答,我写了这个指令:
@NgDirective(selector: 'select[multiple]')
class MultipleSelectDirective {
SelectElement _selectElement;
Compiler _compiler;
Injector _injector;
DirectiveMap _directiveMap;
MultipleSelectDirective(Element this._selectElement, this._injector, this._compiler, this._directiveMap) {
_selectElement.addEventListener('DOMNodeInserted',
(_) => _compiler(_selectElement.childNodes, _directiveMap)(_injector, _selectElement.childNodes));
_selectElement.addEventListener('DOMNodeRemoved',
(_) => _compiler(_selectElement.childNodes, _directiveMap)(_injector, _selectElement.childNodes));
}
}