javascript - 引用使用 ngRepeat 创建的动态表中的 DOM 元素

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

我有一个动态生成的表。每行包含一个选择(又名下拉菜单)和一个复选框

在更改选择时,我想另外更改复选框的属性,但是我不确定如何引用复选框一个 ng-change 函数。

这是一个动态 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
        }
}

在我看来,复选框不在这个ngChange函数的范围中,但是我不确定如何纠正这个问题。 此外,我尝试按照我的互联网旅行中的建议为每个表行提供自己的 Controller ,名为 here ;这确实是个好习惯吗?

最佳答案

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

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

关于javascript - 引用使用 ngRepeat 创建的动态表中的 DOM 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27772043/

相关文章:

javascript - jQuery:如何更改标签名称?

html - float 布局中的 CSS 缩放 div

javascript - 无法读取 Controller 中的指令值

javascript - 如何编写接受参数 fct_x 的函数 y,该参数 fct_x 访问需要在函数 y 中定义的 var-a?

javascript - typescript 命名空间引用不起作用

html - 通过 c/cgi-bin/html 显示密码字段和下一步按钮。我希望当屏幕显示时焦点位于密码字段中

html - 在标题和内容之间定位导航栏?

javascript - 如何使用 javascript 打印条码或以 pdf 格式导出条码

javascript - AngularJS - 是否可以使用 ng-repeat 呈现 HTML 值?

javascript - React 路由器history.push() 无法从history.listen() 工作