选择不会停留在AngularJS多选绑定中
Selection does not stick in AngularJS MultiSelect Binding
我正试图将多选中的选定值显示为视图中的单独对象,这意味着选定值将出现在表单的其他位置;实际的多选将被隐藏,只需要发布选定的值,就可以将它们绑定到视图模型服务器端(ASP.NET MVC)。
这似乎奏效了。但是,AngularJS会在ID前面加上"string:",所以我必须使用track by
。如果我这样做了,多选开始变得奇怪,也就是说,如果我选择了一个选项,该选项将立即再次取消选择,除非我单击该选项两次。我不知道那里发生了什么。
这是Plunker的密码,有人知道我遗漏了什么吗?
似乎是ng选项指令的问题(https://github.com/angular/angular.js/issues/6564)。
我还在angularjs文档中找到了一些信息:
"在同一表达式中使用select as和track by时要小心。"
https://docs.angularjs.org/api/ng/directive/ngOptions
我分叉了你的plunker,并使用了一个带有ng重复的<options>
标签:
https://plnkr.co/edit/uH4hGgUGjvAxcBt3bViT?p=preview
问题出在生成器模式value.id as value.name
上,尽管文档声称它已经坏了一段时间。
我已经分叉了你的plunkr,并将select
标签更改为:-
<select id="tracking" multiple="multiple" ng-model="vm.selected"
ng-options="value.name for value in vm.values track by value.id">
如果您现在在浏览器中检查此元素,您将看到option
元素的value
属性上没有不需要的"string:"前缀。
为了让您放心,我还编写了一个函数来提取表单提交后将发送到服务器的值。
但是,由于我的更改,vm.selected
数组中的项不再是字符串ID,而是实际的对象本身。因此,请记住将.id
添加到引用数组成员的代码中,例如vm.selected[ i ].id
而不是vm.selected[ i ]
- AngularJS指令只识别双向绑定类型
- Angularjs无法将单选按钮与嵌套范围内的模型绑定
- OnsenUI AngularJS数据绑定无法正常工作
- 当绑定到AngularJS中的函数时,会在后台发生什么
- AngularJS 1.5.x服务未正确绑定,并且未在控制器中更新
- 重新定义的变量不;t在AngularJS中绑定
- 同一页面上两个不同控制器的Angularjs双向绑定字段
- 如何绑定“;这个“;在$http.post中->在AngularJS中解析/拒绝?(现在this=Window对象
- AngularJS绑定没有'在没有填充父范围的情况下无法工作
- 将click事件绑定到AngularJS指令中的子元素
- 使用AngularJs数据绑定的三元运算符显示图像
- AngularJS部分模板双向绑定&刷新困境
- 如何在angularjs中检查Kendo树视图数据绑定事件
- AngularJS-将数组值绑定到输入ngModel
- Angularjs:ui路由嵌套状态下的绑定不起作用
- 如何在javascript数据字段中绑定AngularJs变量
- 为什么数据与模态窗口解除绑定?/AngularJS.
- 无法绑定angularjs和firebase中的后端数据
- 绑定AngularJS值以调用现有的JavaScript函数
- 无法绑定AngularJS工厂的数据