2015-06-15 4 views
0

У меня есть сценарий, который получает документ и позиции этого документа за определенный промежуток времени в фоновом режиме. Позиции отображаются с помощью ng-repeat, и некоторые поля позиций доступны. Когда я буду записывать новые данные в свое поле позиции, все потеряно, потому что в новой версии документа и позиций появилась новая версия.Модели обновления фона AngularJS - лучшая практика

Возможно ли проверить, что входные/текстовые объекты сфокусированы и объединяют данные из области видимости и новых данных?

Мой сценарий:

$scope.getDoc = function (id) { 
    DocFactory.get(id).then(function (doc) { 

     $scope.doc = doc; 

     PosFactory.getPos(id).then(function (pos) { 
      $scope.pos = pos; 
     }); 

    }); 
} 

// when app start 
$scope.getDoc(); 

// when synced 
$rootScope.$on("synced",function(){ 
    $scope.getDoc(); 
}); 

$scope.addDesc = function(pos, description) { 
    pos.description = description; 
    PosFactory.getPos(pos.id, pos).then(function() { 
     $scope.getDoc(); 
    }); 
} 

<div ng-repeat="p in pos"> 
    <form ng-init="description=p.desc"> 
     <textarea ng-model="description"></textarea> 
     <input type="submit" value="Save" class="btn btn-default" 
      ng-click="addDesc(p, description)"> 
    </form> 
</div> 
+0

Покажите свой HTML код также. – Rohit

ответ

0

Попробуйте указать индекс в track by части ng-repeat

+0

Проблема возникает, когда $ broadcast ('synchronized') испускается, и у меня есть новый контент в textarea. Вызов $ scope.getDoc() ereses chenged content. – Szymon

Смежные вопросы