【问题标题】:How to create dynamically $scope based on input parameter in angularjs如何根据angularjs中的输入参数动态创建$scope
【发布时间】:2020-02-01 10:22:14
【问题描述】:

HTML

<div ng-repeat-start="param in parameters">
    <div ng-show="param.expensecolumn_type == tab.title">
        <div class="col-md-3" ng-show="param.inputtype == 'Textbox'"
             ng-repeat="para in param.columnsdata">
            <md-input-container ng-disabled="" class="md-block inputcontainer"
            >
                <label>{{para.ColumnName}}</label>
                <input ng-model="models[tab.title].values[para.ColumnName]" maxlength="16"/>
            </md-input-container>
        </div>
    </div>
</div>

<md-button ng-click="save_details(tab.title)"
           class="md-raised md-warn">Submit
    <md-tooltip>Submit</md-tooltip>
</md-button>

JS

$scope.models = {};
$scope.save_details = function(type){
    var str = "";
    var value = str.concat($scope,'.models.',type,'.values');
    $scope.data_todb = value;
    console.log($scope.data_todb)    
}

我的 JSON 数据 - (现在 $scope.models 在 ng 点击时看起来像这样)

  {
  "RENT": {
    "values": {
      "rent_qty": "34",
      "rent_amount": "100"
    }
  },
  "HOUSEHOLD": {
    "values": {
      "Account_no": "w",
      "name": "w"
    }
  }
}

预期输出 JSON

{
  "rent_qty": "34",
  "rent_amount": "100"
}

我试图在调用 ng-click 指令时动态创建 $scope 变量。$scope.save_details() 函数中的变量(类型)可能会根据输入而改变。所以我尝试根据变量创建动态范围。请提前指导我找到解决方案。

【问题讨论】:

    标签: html json angularjs


    【解决方案1】:

    JS

     angular.forEach($scope.models, function(values, keys) {    
        if(type == keys){
          console.log(keys,values)
          for (o in values.values) {
            alert(o)
            alert(values.values[o])
          }
        }
     })
    

    我无法创建动态范围,但是使用上述场景我得到了预期的输出。我觉得它可以帮助某人

    【讨论】:

      猜你喜欢
      • 2019-09-29
      • 1970-01-01
      • 2015-02-11
      • 1970-01-01
      • 2021-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-24
      相关资源
      最近更新 更多