2016-05-22 45 views
0

我正在使用ng-repeat來創建一組div的todo項目。我想要發生的事情是自動將「編輯=真」樣式應用於這個新創建的項目,並在可能的情況下應用焦點。爲範圍內的新項目編寫條件ng-init語句

<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的索引號,但沒有運氣。獎勵積分幫助設置焦點到這個輸入項目,非常感謝!

回答

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">