我使用基本的CRUD操作扩展了angular.dart.tutorial。因此,在新的edit_recipe_component.html中,我需要为食谱类别添加某种选择输入。
目前我有
<select ng-model="ctrl.recipe.category">
<option ng-repeat="c in ctrl.categories" value="{{c}}">{{c}}</option></select>
表面上效果非常好:我可以从列表中选择类别,选择的类别成功存储在模型中,等等。 但是我在调试控制台中遇到了这些错误:
NoSuchMethodError : method not found: 'ngValue'
Receiver: null
Arguments: []
STACKTRACE:
#0 Object.noSuchMethod (dart:core-patch/object_patch.dart:42)
#1 _SingleSelectMode.onModelChange.<anonymous closure> (package:angular/directive/input_select.dart:185:78)
#2 _SelectMode._forEachOption (package:angular/directive/input_select.dart:146:24)
#3 _SingleSelectMode.onModelChange (package:angular/directive/input_select.dart:183:19)
我做错了什么?
不幸的是APIDOCS to InputSelectDirective没有使用部分
更新:我已根据第6章示例创建了github项目,其中重现了问题 它在这里:https://github.com/vadimtsushko/angular_tutorial_chapter_06
某些调试显示,“编辑”表单中的设置类别可立即成功运行(我已在“食谱”列表视图中添加了类别以进行调试)。 离开编辑表单时出错。
答案 0 :(得分:4)
我认为这个问题已经修复了一段时间(因此不需要补丁),但无论如何,你也可以使用ng-value
:
<select ng-model="ctrl.recipe.category">
<option ng-repeat="c in ctrl.categories" ng-value="c">{{c}}</option></select>
答案 1 :(得分:2)
_SingleSelectMode
课程上做一点补丁
onModelChange(value) {
var found = false;
_forEachOption((option, i) {
if (option == _unknownOption) return;
if (expando[option] == null ) return;
var selected = value == null ? option == _nullOption : expando[option].ngValue == value;
found = found || selected;
option.selected = selected;
});