在使用ng Repeat创建的动态表中引用DOM元素

时间:2015-01-05 00:48:30

标签: javascript html angularjs angularjs-scope angularjs-ng-repeat

我有一个动态生成的表。每行包含select(也称为下拉菜单)和checkbox

在更改select时,我想另外更改checkbox的属性,但我不确定如何从checkbox函数引用ng-change。< / p>

这是一个动态HTML表格:

</table>  
 <tr ng-repeat = "(index, item) in items">
    <td >
        <select ng-model="item.myDropDown" ng-change="dropDownChange()">
             <option value="A"> A </option>
             <option value="B"> B </option>
        </select>  
    </td>
    <td>
        <input type="checkbox" ng-model="item.myCheckbox" value="unchecked" disabled='disabled'/>
    </td>
 </tr>
</table>  

现在我尝试使用以下方法引用这些元素:

myApp.controller('myController', function($scope) { 
        $scope.dropdownChange = function() {
            console.debug(this.item.toDoDropdown); //I am able to reference the select-option values
            document.getElementById(this.item.myCheckbox).checked = true; //This is placeholder code to signify my intent at referencing the checkbox
        }
}

在我看来checkbox不在此scope函数的ngChange中,但我不确定如何纠正此问题。 另外,我试图按照我的网络旅行中的建议给每个表格行设置自己的控制器,命名为here;这确实是一种很好的做法吗?

1 个答案:

答案 0 :(得分:1)

您可以将索引和项目传递给方法:dropDownChange($index,item)

$scope.dropdownChange = function($index,item){
    item.myCheckbox = true;
}