Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带AJAX multiselect的Angular ui-select2-将最终选择值作为ID而不是json检索 带AJAX multiselect的Angular ui-select2-将最终选择值作为ID而不是json检索 问题陈述_Javascript_Angularjs_Angular Ui_Angularjs Select2_Ui Select2 - Fatal编程技术网

Javascript 带AJAX multiselect的Angular ui-select2-将最终选择值作为ID而不是json检索 带AJAX multiselect的Angular ui-select2-将最终选择值作为ID而不是json检索 问题陈述

Javascript 带AJAX multiselect的Angular ui-select2-将最终选择值作为ID而不是json检索 带AJAX multiselect的Angular ui-select2-将最终选择值作为ID而不是json检索 问题陈述,javascript,angularjs,angular-ui,angularjs-select2,ui-select2,Javascript,Angularjs,Angular Ui,Angularjs Select2,Ui Select2,我想使用tokeninput/Selected/select2样式的ui控件来编辑模型中的ID数组。ID数组是我正在为其构建编辑器/表单的更大模型中一个属性的值。编辑ID数组后,当我将模型提交给服务器时,我希望该属性作为ID数组而不是json对象数组提交 使用angular的ui-select2组件时,my属性的内容将被json对象数组替换。现在还不清楚在编辑完成后如何撤销。我认为我可能使用了错误的组件,但所有的线程似乎都指向在使用angular进行此类操作时使用ui-select2 解释 数据

我想使用tokeninput/Selected/select2样式的ui控件来编辑模型中的ID数组。ID数组是我正在为其构建编辑器/表单的更大模型中一个属性的值。编辑ID数组后,当我将模型提交给服务器时,我希望该属性作为ID数组而不是json对象数组提交

使用angular的ui-select2组件时,my属性的内容将被json对象数组替换。现在还不清楚在编辑完成后如何撤销。我认为我可能使用了错误的组件,但所有的线程似乎都指向在使用angular进行此类操作时使用ui-select2

解释 数据模型以“myProp”属性开始,该属性是一个ID数组:

{"myProp":["4","6"]}
ui-select2指令将这些ID替换为json对象。下面是加载ui-select2时模型的示例。(此plunker中的现场演示:http://plnkr.co/edit/vEf1VwnRHNYdB9AuR9zO ):

保存模型时,我希望将此属性作为ID数组而不是json对象数组提交给服务器。因此,基本上,我想将数组缩小到ID,而不是json对象。Select2API提供了一个val方法,该方法将返回此ID数组。在angular的ui-select2组件的上下文中如何使用它

警告:我在多个属性的页面上多次这样做,因此特定于该属性的硬编码修复将不起作用。对于我用select2编辑的任何属性,它都必须是自动发生的

示例代码
(请参阅此plunker中的代码:)

在select2指令中,我尝试更改以下实例:

    elm.select2('val',

这是可行的,但只有在添加或删除元素之后。然而,加入

    elm.trigger('change'); 
对于initSelection部分,这会在加载时触发它,我认为这会给您提供所需的行为


在select2指令中,我尝试更改以下实例:

    elm.select2('val',

这是可行的,但只有在添加或删除元素之后。然而,加入

    elm.trigger('change'); 
对于initSelection部分,这会在加载时触发它,我认为这会给您提供所需的行为


谢谢@bcotter修复了它。是时候让我专心阅读/写作/调试了。很抱歉您的答案修复了plunker中旧版本的ui-select2,它还有其他问题。最新版本的ui-select2更为复杂,当我应用您的修复程序时会中断:-(请参阅使用最新ui-select2代码更新的plunker。好的,好的!您似乎只需要在script.js中的InitSelection下更改一行。更改其中的内容:response={id:value,text:“+value”的标签)说:response=id.value;再次感谢您的帮助。当我去报告ui-select2 github项目的另一个潜在问题时,我看到了这一点:看起来维护人员正在放弃该组件并建议完全重写。经过4天的修补,我准备放弃ui-select2,用它从头开始编写一些东西JQuery UI标记输入或选择(或纯角度)。谢谢@bcotter修复了它。现在是我开始阅读/编写/调试角度指令的时候了。哦,对不起。您的回答修复了plunker中旧版本的ui-select2,它还有其他问题。最新版本的ui-select2更为复杂,在我应用您的修复程序时会中断:-(请参阅使用最新ui-select2代码更新的plunker。好的,好的!您似乎只需要在script.js中更改InitSelection下的一行。更改其中的内容:response={id:value,text:“+value}的标签”说:response=id.value;再次感谢您的帮助。当我去报告ui-select2 github项目的另一个潜在问题时,我看到了这一点:看起来维护人员正在放弃该组件并建议完全重写。经过4天的修补,我准备放弃ui-select2,用它从头开始编写一些东西JQuery UI标记输入或选择(或纯角度)。