2012-07-09 72 views
1

有没有一种方法可以从模板中获取绑定?在Angular.js中获取绑定数据

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

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

,才有可能通过点击它来改变项目的状态,因为重复的div会“记住”什么项目它是从建?

回答

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,虽然这是不太测试 - 只在端到端测试中 - 并且不那么灵活,比如说你想引入验证或者其他)。

HTH