如何从输入复选框中执行angular.js中的函数?

时间:2013-04-14 02:16:43

标签: angularjs

我有一系列带开关的东西。如何让每个开关调用具有该对象的函数并将开关作为参数调用?

我试图为我的复选框设置“ng-change”指令,但似乎没有调用该函数。如何调用我制作的toggleSync函数?

我是新手,所以如果我需要认真的帮助,我很抱歉。

<div id="track-list" ng-controller="Controller" ng-init="update()">
  <div class="data-table">
  <table class="table table-hover tablesorter">
    <tr ng-repeat="item in items">
      <td><a href='{[{item.path}]}/{[{item.id}]}'>{[{item.title}]}</a></td>
      <td>{[{item.time_created}]}</td>
      <td>
        <div class=checkbox>
          <input ng-model="value" id="check{[{$index}]}" type="checkbox" ng-checked="!item.deleted" ng-change="toggleSync(item.id, this)" ng-true-value="YES" ng-false-value="NO"/>
          <label for="check{[{$index}]}">{{value}}</label>
        </div>
      </td>
    </tr>
  </table>


function Controller($scope) {
  console.log("init");
  $scope.items = [];

  $scope.toggleSync = function(objectId, input) {
    console.log("toggle sync");
  }
}

1 个答案:

答案 0 :(得分:4)

这是一个包含您的代码和一些更正的plunker(即:您使用了标签分隔符{[{item.title}]}而不是{{item.title}})

链接:http://plnkr.co/edit/f9ngMMe8XJT4QDlA0Nx0?p=preview

在这个演示中,有一个表行显示item.path / item.id作为链接,后跟item.title和一个复选框,根据其状态将值设置为YES / NO。当复选框状态发生更改时,将调用toggleSync函数,并将该项作为参数。输入复选框具有item.value作为模型,这是toggleSync函数内可用的属性。