为了账号安全,请及时绑定邮箱和手机立即绑定

在 Angularjs 中动态分配 ng-model 并读取 Controller 函数中的值

在 Angularjs 中动态分配 ng-model 并读取 Controller 函数中的值

慕容708150 2022-11-27 16:40:44
add当用户单击按钮时,我试图创建一个新的矩形。这个矩形也将有一个输入字段并为这些字段选择我试图ng-model动态分配并读取控制器中的相应值。HTML:<button id="AddNewField" ng-click="AddNewField();" class="btn btn-success"> Add New </button><div ng-repeat="(key,value) in NewFieldValues">    {{ value.ID }}    <div style="width:250px;height:100px;border:1px solid #000;" draggable="true">        <select ng-model="BusinessStep[value.ID]" ng-change="BusinessStepChange(value.ID)" class="form-control">            <option ng-repeat="businessStep in businessSteps" value="{{ businessStep.value }}"> {{ businessStep.text }} </option>        </select>        <br/>        <input type="text" ng-model="Events[value.ID]"></input>    </div></div>Angularjs: $scope.NewFieldValues = [];$scope.FieldID          =   0;$scope.AddNewField  =   function(){    item            =   {};    item["ID"]      =   $scope.FieldID;    item["Fields"]  =   [];    $scope.NewFieldValues.push(item);    $scope.FieldID++;}$scope.BusinessStepChange   =   function(BusinessStepID){        for(var bs=0; bs<$scope.NewFieldValues.length; bs++)    {        if($scope.NewFieldValues[bs].ID ==  BusinessStepID)        {            console.log($scope.NewFieldValues[bs]);            console.log($scope.BusinessStep);            $scope.NewFieldValues[bs]['Fields'].BusinessStep    =   "Hello"; //Read the value from corresponding select field        }    }       }如何ng-model为矩形中的每个字段动态分配字段,以及如何在控制器函数中读取它们
查看完整描述

1 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

<button id="AddNewField" ng-click="AddNewField();" class="btn btn-success"> Add New </button>


<div ng-repeat="NewField in NewFieldValues">

    <div style="width:250px;height:100px;border:1px solid #000;" draggable="true">

        <select ng-model="Dynamic.BusinessStep[NewField.ID]" ng-change="BusinessStepChange(NewField.ID,'BusinessStep')" class="form-control">

            <option ng-repeat="businessStep in businessSteps" value="{{ businessStep.value }}"> {{ businessStep.text }} </option>

        </select>

        <br/>

        <input type="text" ng-model="Dynamic.ObjectCount[NewField.ID]" ng-blur="BusinessStepChange(NewField.ID,'EventCount')"></input>

    </div>

</div>



$scope.NewFieldValues       =   [];

$scope.FieldID              =   0;

$scope.Dynamic              =   {};


$scope.AddNewField  =   function(){

    item            =   {};

    item["ID"]      =   $scope.FieldID;

    item["Fields"]  =   [];

    $scope.NewFieldValues.push(item);

    $scope.FieldID++;

}


$scope.BusinessStepChange   =   function(BusinessStepID, Type){

    

    for(var bs=0; bs<$scope.NewFieldValues.length; bs++)

    {

        if($scope.NewFieldValues[bs].ID ==  BusinessStepID)

        {

            if(Type ==  'BusinessStep')

            {

                $scope.NewFieldValues[bs]['Fields'].BusinessStep    =   $scope.Dynamic.BusinessStep[BusinessStepID];

            }

            else if(Type    ==  'EventCount')

            {

                $scope.NewFieldValues[bs]['Fields'].NumberofElement =   $scope.Dynamic.ObjectCount[BusinessStepID];

            }               

            console.log($scope.NewFieldValues);

            break;

        }

    }       

}


查看完整回答
反对 回复 2022-11-27
  • 1 回答
  • 0 关注
  • 104 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信