有没有一种方法可以从模板中获取绑定?
换句话说,如果我有这样的事情:
<div ng-repeat="item in list">
<div>{{item.name}}</div>
<div>{{item.state}}</div>
</div>
是否可以通过单击来更改项目的状态,因为重复的 div 会“记住”它是从哪个项目构建的?
有没有一种方法可以从模板中获取绑定?
换句话说,如果我有这样的事情:
<div ng-repeat="item in list">
<div>{{item.name}}</div>
<div>{{item.state}}</div>
</div>
是否可以通过单击来更改项目的状态,因为重复的 div 会“记住”它是从哪个项目构建的?
是的,您可以使用该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 上,尽管这不太可测试 - 仅在端到端测试中 - 并且不太灵活,比如您想引入验证或其他东西)。
高温高压