Ben angularJs ile yeni başlayan ve bence, benim $scope
benim whatching değişiklikleri ile basit bir sorun var.Otomatik izleme angularJ nasıl etkinleştirilir?
Sunucudan aldığım bir $scope.tasks
nesnesine sahibim.
{
2: {id: 2, name: 'name1', user: 3},
3: {id: 3, name: 'name2', user: 1},
4: {id: 4, name: 'name3', user: 4},
}
Ayrıca ben bir işlev görevi güncelleme kullanıcı var: Görünüşe
$scope.managePlannedIterationTask = function(taskId, userId) {
var data = {
'taskId' : taskId,
'userId' : userId
};
$http.post("url", data).success(function(data, status) {
$scope.tasks[taskId].user = userId; //#1
});
};
Ayrıca ben $scope.test();
bu fonksiyon gerekir özel fonksiyon görevlerinde kullanıcının her değişiklikten sonra gerçekleştirilmek zorundadır, güncelleştirme sorgusu ve en güncellenmesi // 1.
sonra örneğin bu amaç $ izlemek için kullanmaya çalıştı ve $ watchCollection:
$scope.$watchCollection('tasks', function() {
$scope.test();
})
Fakat bu yardımcı olmuyor. Ve şimdi $ scope.tasks'imi güncellediğimde her yere $scope.test()
'u eklemem gerekiyor. Çok üzücü. Otomatik olarak nasıl yapabilirim?
Saati ne zaman kaydediyorsunuz ve değişiklikleri nasıl tetikliyorsunuz? –
@DavidL Denetleyicimin sonundaki saati kaydediyorum ve seçiminde ng değişimiyle değişimi tetikliyorum. – Neversmile
Bu senin problemin. En başında kaydettirin. Sonunda kayıt olursanız, izleyeceği herhangi bir etkileşim geçene kadar kayıt olmayacağı için makul bir şans vardır. Ve son olarak, bu tasarım kokusunun bir göstergesi olabilir. Bunun yerine geri arama tarzı bir yaklaşım düşünmek isteyebilirsiniz. –