我有一个简单的select语句,我想读取所选的值,并在选择更改后将其发送到控制器中的函数,我能够读取索引并能够在select中显示/读取它,但是on-change功能继续向函数发送0:
我选择的HTML是:
<select ng-change="TodoCtrl.printit(ng-value)">
<option ng-value=""></option>
<option ng-repeat="todo in TodoCtrl.todos" ng-value={{$index}}>
{{$index}} is {{todo.text}}
</option>
</select>
并且控制器中的功能是:
void printit(num i){
print('id selected is: $i');
}
任何人都可以请我来这里。
感谢
答案 0 :(得分:1)
您可能应该使用模型而不是尝试处理更改事件。检查单元测试以获取示例代码。
您看到的是ng-value是事件上下文中未定义变量的结果。根据此代码段中没有定义ng-value变量。指令ng-value不定义变量。
ng-value指令用于指定任意值(即对象)作为选项值。在此代码中,选项值为纯字符串,应使用vanilla值属性。
答案 1 :(得分:1)
谢谢,我注意到以下内容:
所以,我的工作代码是: 在HTML文件中:
<select ng-change="TodoCtrl.printit()" ng-model="TodoCtrl.selectedIndex">
<option ng-value=""></option>
<option ng-repeat="todo in TodoCtrl.todos" value={{$index}}>
{{$index}} is {{todo.text}}
</option>
</select>
并且控制器中的功能是:
void printit(){
new Future(() {
selectedText=todos[int.parse(selectedIndex)].text;
print('id with future selected is: $selectedIndex and the value is $selectedText');
switch(int.parse(selectedIndex)){
case 0:
print('String 0');
break;
case 1:
print('String 1');
break;
default:
print('default');
break;
}
});
}
以上与我完美配合,这是一个完美的方法,或者这是一种解决方法!!
任何想法!