【问题标题】:Dynamically populate angularjs-dropdown-multiselect with array of objects from mysql database使用 mysql 数据库中的对象数组动态填充 angularjs-dropdown-multiselect
【发布时间】:2017-05-08 07:14:55
【问题描述】:

我正在使用 angularjs-dropdown-multiselect.js 创建一个多选下拉菜单。我正在尝试使用 mysql 数据库中的现有数据动态填充下拉列表。如果我对范围内的对象数组进行硬编码,则下拉列表将正确填充,并且字形图标检查会突出显示,因为正在检查,并且选择了正确的数字。如果我将数据库中的对象数组作为变量传递给范围,则字形图标检查不会在所选选项旁边突出显示,但正确的所选数量是正确的。有想法该怎么解决这个吗?这是我正在使用的代码的链接:http://dotansimha.github.io/angularjs-dropdown-multiselect/#/

【问题讨论】:

    标签: angularjs twitter-bootstrap


    【解决方案1】:

    在后端,无论您在哪里执行查询以从数据库中获取项目数组,都可以尝试创建一个循环来遍历返回的项目,并将它们一个一个地推送到一个数组中。

    然后进行 get 调用,该调用将接收数组作为来自数据库的响应。

    我希望这就是你所寻找的!

    【讨论】:

    • 当我保存初始结果时,我将它们作为字符串保存在 MySQL 数据库字段中,因为数字可能会根据用户而变化。示例:[{id: 1}, {id: 3}]。然后,当我提取数据时,我将字符串转换为 JavaScript 中的对象数组。它在下拉列表中显示正确的选择数量,但检查没有被应该被选中的那些检查。
    • 那么你的模型可能有问题,你检查了吗?
    • 如果您可以发布一些代码或 plunkr 将非常有帮助
    • $scope.exampleData.fruits -- 这是来自数据库的字符串。我将它传递给这个 javascript 以转换为对象数组。示例: [{id: 1}, {id: 3}] var array = []; var tar = $scope.exampleData.fruits.replace(/^\{|\}$/g,'').split(','); for(var i=0,cur,pair;cur=tar[i];i++){ array[i] = {};对 = cur.split(':');数组[i][pair[0]] = /^\d*$/.test(pair[1]) ? +对[1]:对[1]; }
    • (两者都完全显示为 [object Object],[object Object]) $scope.example6model = array; -- 这正确显示了选择的数量,但没有检查字形。 $scope.example6model = [{id: 1}, {id: 3}]; -- 这正确地显示了选择的数量和检查的字形。 $scope.example6settings = {}; $scope.example6data = [{id:1, label: "Apple"}, {id:2, label: "Peach"}, {id:3, label: "Orange"}];
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-13
    • 2011-08-29
    • 2014-02-07
    • 2018-08-03
    • 2020-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多