在下拉列表中使用ng-change时获取选中的对象

12 浏览
0 Comments

在下拉列表中使用ng-change时获取选中的对象

项目列表以 {\"id\": some num, \"name\": some name } 的形式提供。\n通过 viewBag 获取。\n$scope.projects = @Html.Raw(Json.Encode(@ViewBag.vbProjects));\n下拉菜单:\n\n\n项目: {{project}}\n项目id: {{project.id}}\n项目名称: {{project.name}}\n如何填充数据:\n$scope.project = {\"id\":$scope.someObject.ProjectNameId ,\"name\":$scope.someObject.ProjectNameName};\n结果为:\nproject: {\"id\":18,\"name\":\"someName\"} 项目id: 18 项目名称: someName\n但是在下拉菜单中没有显示。\n我尝试使用以下页面:\ngetting the ng-object selected with ng-change\n但没有帮助。\n有人能帮助我吗?

0
0 Comments

问题的原因是使用了ng-repeat指令来创建下拉菜单,而ng-repeat不会为每个选项创建一个新的作用域。因此,在使用ng-change指令时,无法获取到被选中的对象的值。

解决方法是使用ng-options指令来创建下拉菜单。ng-options指令会为每个选项创建一个新的作用域,因此可以通过ng-change指令获取被选中的对象的值。以下是解决方法的代码示例:


通过以上代码,可以通过ng-model指令将被选中的对象绑定到$scope.project变量上,并且在下拉菜单选项发生改变时触发ng-change指令中的函数,从而获取到被选中的对象的值。

更多关于ng-options指令和select指令的详细信息,请参考AngularJS官方文档。

0