Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.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
Jquery 如何根据从angularJS的第一个下拉列表中选择的一个特定Json对象填充HTML中的其他字段和下拉列表?_Jquery_Angularjs_Json_Select_Dropdown - Fatal编程技术网

Jquery 如何根据从angularJS的第一个下拉列表中选择的一个特定Json对象填充HTML中的其他字段和下拉列表?

Jquery 如何根据从angularJS的第一个下拉列表中选择的一个特定Json对象填充HTML中的其他字段和下拉列表?,jquery,angularjs,json,select,dropdown,Jquery,Angularjs,Json,Select,Dropdown,下面是我拥有的JSON对象和代码。我需要填充在第一个下拉列表中选择的特定帐户的帐户类型。 目前,第二个下拉列表(Type)是从第二个数组填充的,如下所示。但我希望它是自动填充的基础上选择的帐号 从第一个开始 var arrIMAcctNbrs = [{ID:"124568",type:"Loan"}, {ID:"874559",type:"Loan"}, {ID:"785452",type:"Saving"},{ID:"1256422",type:"Deposit"}]; var arr

下面是我拥有的
JSON
对象和代码。我需要填充在第一个下拉列表中选择的特定帐户的帐户类型。 目前,第二个
下拉列表(Type)
是从第二个数组填充的,如下所示。但我希望它是自动填充的基础上选择的帐号

从第一个开始

var arrIMAcctNbrs = [{ID:"124568",type:"Loan"}, {ID:"874559",type:"Loan"},    {ID:"785452",type:"Saving"},{ID:"1256422",type:"Deposit"}];

var arrAcctTypes= ["Deposit","Saving","Loan"];

    <div>
    <label class="label">Account Number</label>
    <select name="cboAcctNbr" id="cboAcctNbr" ng-model="acctNbr" >
     <option ng-repeat="valAcct in arrIMAcctNbr"  value="{{valAcct}}" >{{valAcct.ID}}</option>
    </select><br><br>
</div>
<div>
<label class="label">Account Type</label>   
    <select name="cboAcctTyp" id="cboAcctTyp"  ng-model="acctTyp">
      <option ng-repeat="valAcctTyp in arrAcctTypes" value="valAcctTyp">{{valAcctTyp}}</option>
    </select>    
</div>
var arrIMAcctNbrs=[{ID:“124568”,类型:“贷款”},{ID:“874559”,类型:“贷款”},{ID:“785452”,类型:“储蓄”},{ID:“1256422”,类型:“存款”}];
var arrAcctTypes=[“存款”、“储蓄”、“贷款”];
帐号
{{valAcct.ID}


帐户类型 {{valAcctTyp}}
用于在第一次下拉列表更改时设置第二个下拉列表的默认值

<div>
        <label class="label">Account Number</label>
        <select id="cboAcctNbr" ng-model="acctNbr" ng-options="valAcct.ID for valAcct in arrIMAcctNbrs" ng-change="acctTyp=acctNbr.type">
            </select><br><br>
      </div>
      <div>
        <label class="label">Account Type</label>
        <select id="cboAcctTyp" ng-model="acctTyp" ng-options="valAcctTyp for valAcctTyp in arrAcctTypes">
            </select>
      </div>

帐号


帐户类型
根据Angularjs文档,最好使用 因为它提供了一些好处:-

  • 在如何通过分配的模型方面具有更大的灵活性 选择作为理解表达式的一部分

  • 通过不为每个重复实例创建新作用域,减少了内存消耗

  • 通过在documentFragment中创建选项而不是单独创建选项,提高了渲染速度

无论如何,以下答案是基于您的问题,即使用ng repat指令

以下是对代码所做的更改

  • cboAcctTyp的ng选项中的值为remove
  • 向cboAcctNbr添加ng变更指令
  • 下面是一个正在运行的演示,其中包含所做的更改

    var-app=angular.module(“myApp”,[]);
    应用控制器(“控制器”,功能($scope){
    $scope.arrIMAcctNbr=[{
    ID:“124568”,
    类型:“贷款”
    }, {
    ID:“874559”,
    类型:“贷款”
    }, {
    ID:“785452”,
    类型:“保存”
    }, {
    ID:“1256422”,
    类型:“存款”
    }];
    $scope.arracttypes=[“存款”、“储蓄”、“贷款”];
    $scope.changeAccountType=函数(acctNbr){
    log(JSON.parse(acctNbr.type)
    $scope.acctTyp=JSON.parse(acctNbr).type
    }
    });
    
    
    帐号
    {{valAcct.ID}
    

    帐户类型{{acctTyp} {{valAcctTyp}}
    ng model=“acctNbr”在第一个下拉列表中的值为帐号。因此,ng change=“acctTyp=acctNbr.type”不起作用。“acctNbr”同时具有accountNumber和type。请参见上面的工作示例model=“acctNbr”。acctNbr是valAcct.ID,因此ng change=“changeAccountType(acctNbr)不起作用。是否有任何方法可以存储valAcct并传入ng更改?您可以添加一个函数,将valAcct.ID转换为acctNbr对象