为范围中的新项编写条件ng-init语句

时间:2016-05-22 01:37:27

标签: javascript jquery angularjs

我正在使用ng-repeat创建一组div todo项目。我想要发生的是自动将“editing = true”样式应用于这个新创建的项目,并在可能的情况下应用焦点。

<div class="item" ng-class="{'editing-item': editing, 'edited': todo.edited, 'completed': todo.completed}" 
ng-repeat="todo in todos | orderBy: 'completed'" ng-init ="todo.completed = false">

我还有一个用于创建新项目的添加按钮

<div class="add">
    <span class="add" ng-click="addTodo()">
    </span>
</div>

以下是“addTodo()”的代码

    $scope.addTodo = function(){
      var todo = {name: "..."};
      $scope.todos.unshift(todo);
    };

创建这个新项目时,我可以在ng-init中有条件地设置editing = true,还是只能通过某种方式使用jQuery?我已经通过使用新创建的div的索引号来做这个,但没有运气。帮助设置焦点到这个输入项目的奖励积分,非常感谢你!

1 个答案:

答案 0 :(得分:0)

editing对象中保留todo属性并在ng-repeat

中访问该属性
$scope.addTodo = function() {
  var todo = {
    name: "...",
    editing: true
  };
  $scope.todos.unshift(todo);
};
<div class="item" ng-class="{'editing-item': todo.editing, 'edited': todo.edited, 'completed': todo.completed}" ng-repeat="todo in todos | orderBy: 'completed'" ng-init="todo.completed = false">