1

有没有一种方法可以从模板中获取绑定?

换句话说,如果我有这样的事情:

<div ng-repeat="item in list">
  <div>{{item.name}}</div>
      <div>{{item.state}}</div>
</div>

是否可以通过单击来更改项目的状态,因为重复的 div 会“记住”它是从哪个项目构建的?

4

1 回答 1

4

是的,您可以使用该ng-click指令在当前范围内触发方法:

// In your view's controller:
function MyCtrl($scope, MyList) {
  // You probably have something like that already to
  // populate your list, using a $resource or $http GET call.
  // Here I use a $resource which would be defined on your module.
  $scope.list = MyList.query()

  $scope.setState = function(state) {
    // "this" refers to the current scope
    this.item.state = state
  }
}

// And in your view:
<div ng-repeat="item in list">
  <div>{{item.name}}</div>
  <div ng-click="setState('whatever')">{{item.state}}</div>
</div> 

或者您可以简单地设置一个表达式,例如ng-click="item.state='whatever'"直接在 div 上,尽管这不太可测试 - 仅在端到端测试中 - 并且不太灵活,比如您想引入验证或其他东西)。

高温高压

于 2012-07-09T12:34:21.667 回答