Select 从下拉菜单中选择选项时的AngularDART事件处理

Select 从下拉菜单中选择选项时的AngularDART事件处理,select,dart,angular-dart,Select,Dart,Angular Dart,我有一个简单的select语句,其中我想读取所选值,并在select更改时将其发送到控制器中的函数,我能够读取索引并能够在select中显示/读取它,但on change函数不断将0发送到函数: 我选择的HTML是: <select ng-change="TodoCtrl.printit(ng-value)"> <option ng-value=""></option> <option ng-repeat="todo in TodoCtrl.to

我有一个简单的select语句,其中我想读取所选值,并在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>
谁能把我叫到这儿来


谢谢

您可能应该使用模型,而不是试图处理更改事件。检查单元测试中的示例代码

您看到的是ng值在事件上下文中是未定义变量的结果。此代码段中根本没有定义ng值变量。指令ng值未定义变量


ng value指令用于指定任意值(即对象)作为选项值。在这段代码中,选项值是纯字符串,应该使用普通值属性。

谢谢,我注意到以下几点:

  • 需要使用ng模式
  • 需要使用值(非ng值)
  • 未来是需要使用的,幸运的是这帮助了我
  • {{$index}}是一个字符串,而不是整数,因此需要在函数中将其转换为整数,才能使用int.parse()将其作为整数处理
  • 因此,我的工作代码是: 在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>
    
    以上这些对我来说非常有效,这是一种完美的方法,还是一种变通方法


    任何想法

    谢谢你的提示,我试试看。
    <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;
       }
       });
      }