[AngularJS]可以不使用设置值动态 Angular.js

发布时间: 2017/4/16 20:26:37
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有一个问题。我不能到下拉列表中使用动态 Angular.js 和 PHP 设置值。

<tr ng-repeat="d in days">
    <td>{{d.day}}</td>
    <td> 
        <select class="form-control"  id="catagory" ng-model="catagory" ng-options="cat.name for cat in listOfCatagory track by cat.value " ng-change="removeBorder('catagory',$index,catagory.value);" >
        </select>
    </td>
    <td>
        <select class="form-control"  id="subcatagory[$index]" ng-model="subcatagory[$index]" ng-options="sub.name for sub in listOfSubCatagory[$index] track by sub.value " >
            <option value="">Select Subcategory</option>
        </select>                                              
    </td>
    <td>
        <input type="text" name="comment" id="comment" class="form-control oditek-form" placeholder="Add Comment" ng-model="comment" ng-keypress="clearField('comment');">
    </td>
</tr>   

当用户将选择第一列下拉列表值的各自的第二个下拉列表值将动态地设置按下面的 $index.the 是我控制器端代码。

$scope.removeBorder=function(id,index,catvalue){
        var catdata=$.param({'action':'subcat','cat_id':catvalue});
        $http({
            method:'POST',
            url:"php/customerInfo.php",
            data:catdata,
            headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
        }).then(function successCallback(response){
            //console.log('sub',response.data);
            angular.forEach(response.data,function(obj){
                var data={'name':obj.subcat_name,'value':obj.subcat_id};
                $scope['listOfSubCatagory'+index] = data ;
            })
        },function errorCallback(response) {
        })
    }

请帮我解决此问题。

解决方法 1:

您在使用 listOfSubCatagory [$index] ng-options 的第二个下拉列表,但在 ajax 响应中都将数据设置为 $scope ['listOfSubCatagory' + 索引] = 数据;

因此,你不会得到作为数组的变量 listOfSubCatagory,它将以 listOfSubCatagory0、 listOfSubCatagory1、 等...和这些变量将举行一次而不是数组的单个选项的选项。

修改您的控制器脚本,这样,试一试。

$scope.listOfSubCatagory = []; 

$scope.removeBorder=function(id,index,catvalue){
        var catdata=$.param({'action':'subcat','cat_id':catvalue});
        $scope.listOfSubCatagory[index] = [];

        $http({
            method:'POST',
            url:"php/customerInfo.php",
            data:catdata,
            headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
        }).then(function successCallback(response){
            //console.log('sub',response.data);
            angular.forEach(response.data,function(obj){
                var data={'name':obj.subcat_name,'value':obj.subcat_id};
                $scope.listOfSubCatagory[index].push(data);
            })
        },function errorCallback(response) {
        })
    }
赞助商