javascript - 在 Controller 中访问 ng-repeat $first 属性

标签 javascript angularjs

我有一个带有两个输入框的表格,我使用 ng-repeat 遍历了这些值,

<tr ng-repeat = "row in allRows" >
<td>

<input type="text" ng-model="row.name" ng-readonly="toogleRN && $first"/>
</td>
<td>
<input type="number" ng-model="row.age" ng-readonly="toogleRN && $first"/>
 </td>
 <td>
  <a role="button" class="btn btn-sm btn-default "
                         data-ng-click="toogleIt()" data-ng-show="$first"><span class="glyphicon glyphicon-search"> Edit</span>
                      </a>
 </td>
 </tr>
 </table>

我的 Controller 后面是我的 Controller

var app =  angular.module("TableDemo",[]);
app.controller('TableController',['$scope',function($scope){
    $scope.toogleRN=true;

    $scope.toogleIt= function()
    {
        $scope.toogleRN = !$scope.toogleRN;
        console.log($scope.toogleRN);
    };

    $scope.allRows=[{name:'Name_1',age:25},
                    {name:'Name_2',age:28},
                    {name:'Name_3',age:17},
                    {name:'Name_4',age:25},
                    {name:'Name_5',age:26}];
}]);

要求第一行默认是只读的,当点击“编辑”按钮时,它应该是可编辑的。通过使用上面的代码,它完全满足了我的要求,但我的问题是如何将 ng-readonly="toogleRN && $first" 移动到 Controller ?

最佳答案

使用函数:

ng-readonly="myFunction(toogleRN, $first, row.editable)"
// on the button 
 ng-click = row.editable = true
 // in the javascript
 $scope.myFunction = function(toogleRN, isFirt, isEditable){

 }

关于javascript - 在 Controller 中访问 ng-repeat $first 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36860852/

相关文章:

javascript - iOS safari 会自动扩展 iframe

php - JS禁用时页面内容不同

css - 使用 ng-show 时如何防止表格重新调整大小?

javascript - ng-repeat 在 ssr 渲染电子邮件中不起作用 - Angular meteor

html - 在angularjs ng-repeat中为对象动态添加属性

javascript - 在 Firefox 中使用 let 和 yield

javascript - Typescript 应用程序导入和导出的基本问题

javascript - 如何在对象数组的嵌套数组中获取数组对象javascript

javascript - 为 ng-show 和 ng-class 评估空数组时的结果不一致

html - 使用 ng-repeat 包装列