使用ng-click更改ng-repeat循环内的值

时间:2016-02-26 11:28:28

标签: javascript angularjs angularjs-controller angularjs-controlleras

我想使用函数更改ng-repeat循环中项目的值。

例如,这不会起作用。

HTML

<ul class="unstyled">
  <li ng-repeat="todo in todoList.todos">
      <span>{{todo.name}}</span>
      <button ng-click="example(todo)">Change me</button>
  </li>
</ul>

JS

$scope.example = function(v) {
  v.name = 'i am different now';
};

完整示例

http://plnkr.co/edit/kobMJCsj4bvk02sveGdG

1 个答案:

答案 0 :(得分:10)

使用controllerAs模式时,您应该在从控制器功能访问任何变量时使用controller别名。但这应该与this的{​​{1}}上下文绑定。

controller

Demo Here

<强>扩展

在控制器工厂函数中使用<button ng-click="todoList.example(todo)">Click me</button> 关键字时,请记住。您应该将this变量分配给某个变量,以确保您使用的this不是其他this,请查看this context related issue

this