Angularjs 在构造列表中的元素中分配动态 ng 模型名称

Angularjs assigning dynamic ng-model name ,in constructing elements in list?

本文关键字:动态 ng 模型 分配 列表 Angularjs 元素      更新时间:2023-09-26

在这里我定义了我的代码,请帮助我。我在 laravel 的刀片模板引擎中使用 angularjs,在这种情况下我无法在角度中动态地为 ng 模型分配名称

$scope.categoryChange=function(id,model){
    	$scope.getCategories(id,model);
        };//category change
        orgusers=0;
        $scope.users = new Array();
        $scope.addUsers = function(){
        	if($scope.totalExperts>0){
        		orgusers++;
            	newUser={"name":"name"+orgusers,"model":"expertise"+orgusers,"category":"empcategory"+orgusers};
            	$scope.users.push(newUser);
            	if($scope.totalExperts!='' && $scope.totalExperts>0){
            		$scope.totalExperts--;
            	}
        	}else{
        		alert("To add users please input total experts field .");
        		document.getElementById('focusIt').focus();
        	}
        };
        $scope.removeUser = function(removeUser){
        	$scope.users.splice($scope.users.indexOf(removeUser),1);
        	if($scope.totalExperts!='' || $scope.totalExperts==0){
        		$scope.totalExperts++;	
        	}
        };
 $scope.getCategories=function(catId,model){
        	 experts=new Array();
        	angular.forEach($scope.categories, function(value,key) {
        		if(catId==value.parent){
        			experts[key]={id:value.id,name:value.category};
        		}
       	    });
        	$scope[model]=experts;
        };
<div>
    <ul style="list-style-type: none;">
    <li ng-repeat="user in users">
    <label>Name:</label><input type="text" name="<%user.name%>" />
    <label style="display:inline-block;">Email:</label><input type="text" name="empemail[]" />
    <label style="display:inline-block;">Phone:</label><input type="text" name="empphone[]" />
    {{ Form::label('select category','',array('style'=>'display:inline-block;')) }}
	<select name="empcategories[]" ng-model="<%user.name%>" ng-options="k as v for (k,v) in mainCategories" ng-change="categoryChange(emp1,'<%user.model%>')" ></select>
	{{ Form::label('Expertise','',array('style'=>'display:inline-block;')) }}
	<select  name="empspecialized[]" ng-model="empspecialization" ng-options="k as v.name for (k,v) in <% user.model %>">
	</select> 
	<button ng-click="removeUser(user)">-</button>
    </li>
    </ul>
    </div>

错误: [ngModel:nonassign] 表达式 '<%user%>' 是不可分配的。元素:任何建议或解决方案,正在等待,提前感谢

我找到了我发布的问题的解决方案。我犯的错误是,在此尝试将不可分配给选择选项值的值作为模型值,并将其更改为以下代码对我有用。

<div>
<ul style="list-style-type: none;">
<li ng-repeat="user in users">
<label>Name:</label><input type="text" name="<%user.name%>" />
<label style="display:inline-block;">Email:</label><input type="text" name="empemail[]" />
<label style="display:inline-block;">Phone:</label><input type="text" name="empphone[]" />
{{ Form::label('select category','',array('style'=>'display:inline-block;')) }}
<select name="empcategories[]" ng-model="user.category" ng-options="k as v for (k,v) in mainCategories" ng-change="categoryChange(user.category,'<%user.model%>')" ></select>
{{ Form::label('Expertise','',array('style'=>'display:inline-block;')) }}
<select  name="empspecialized[]" ng-model="empspecialization" ng-options="k as v.name for (k,v) in <% user.model %>">
</select> 
<button ng-click="removeUser(user)">-</button>
</li>
</ul>
</div>

我在这里需要的结果是我需要将当前选定的选项 id 传递给我的调用方法,以便我可以匹配并生成子类别列表。我希望它能帮助你, 谢谢