javascript - 使用相同的 ng-model 从 AngularJS 中的数组中选择下拉选项

标签 javascript jquery angularjs

我有一个使用 AngularJS、Monaca 和 OnsenUI 开发的跨平台应用程序。

我的观点之一是大表单,用户可以在其中选择多个下拉选择值。对于表单的大部分内容,选项是“是/否”下拉选择选项。

我在 app.js 中创建了一个数组来保存是/否选项来填充下拉选择值,如下所示。

$scope.OptionYesNo = [{
    yesnooptiondesc: "No",
    yesnooptionid: "0"
}, {
    yesnooptiondesc: "Yes",
    yesnooptionid: "1"
}];

然后,为了填充我的下拉选择选项,我在 View 中执行以下操作:

<ons-row>
    <ons-col>
        Option 1
        <select id="" name="" ng-model="OptionYesNo.yesnooptionid" ng-options="yesNoOption.yesnooptionid as yesNoOption.yesnooptiondesc for yesNoOption in OptionYesNo" ng-change="changedValue(OptionYesNo.yesnooptionid, 'OptionOne')">
            <option value="" label="-- Please Select --"></option>
        </select>
    </ons-col>
</ons-row>

然后在我的 app.js 中,我处理 changedValue(...) 函数中所选值选项的更改,如下所示。我向函数传递了一个标识符,以及将值保存到哪个数组的指示符(由于不相关而省略)

$scope.changedValue = function (selectedValue, identifier) {
    switch (identifier) {
        case "OptionOne":
            $scope.optionOneArray.push(selectedValue);
            break;

        case "OptionTwo":
            $scope.optionTwoArray = selectedValue;
            break;
    }
}

问题是当我尝试使用与上面相同的方法添加第二个“是/否”选项时,例如

<ons-row>
    <ons-col>
        Option 2
        <select id="" name="" ng-model="OptionYesNo.yesnooptionid" ng-options="yesNoOption.yesnooptionid as yesNoOption.yesnooptiondesc for yesNoOption in OptionYesNo" ng-change="changedValue(OptionYesNo.yesnooptionid, 'OptionTwo')">
            <option value="" label="-- Please Select --"></option>
        </select>
    </ons-col>
</ons-row>

每当我更改一个选择值时,另一个选择值也会更改,因为它们使用相同的 ng-model。我该如何应对这种情况?我不想(或者认为我必须)创建一个 $scope.OptionOneYesNo = [{ ... }]; $scope.Option每个选择下拉菜单有两个YesNo = [{ ... }];,因为可能有 20 多个选择下拉菜单。

最佳答案

您需要在下拉 ListView 中创建不同的 ng-model。不要在所有下拉菜单中使用相同的模型。您仍然可以在每个下拉列表中迭代 $scope.optionsyesno 中的选项。这应该可以解决问题。

关于javascript - 使用相同的 ng-model 从 AngularJS 中的数组中选择下拉选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38361231/

相关文章:

javascript - 将 img 标签插入 Canvas 元素

javascript - 指令中的 jQuery 函数不起作用

node.js - XMLHttpRequest 无法加载 http ://127. 0.0.1 :1337/. 请求的资源上不存在 'Access-Control-Allow-Origin' header

angularjs - 如何在 ng-messages 指令中插入表达式?

javascript - AngularJS 与 AngularJS Material 中的范围问题

javascript - 使用 PHP 获取/读取 Javascript cookie

javascript - 使用 HTML、Javascript、MySQL 和 PHP 组合提交表单时出错

javascript - 解析数据库 JavaScript 和 PhoneGap

javascript - 使用 Spring Security 在 HTML 中登录后重定向到主页

javascript - 使用 jQuery 验证我的调查问卷