누군가가 키-> 값 쌍을 가진 데이터 스토어 종류의 서비스를 가지고 있다면 성능 팁 이 거의 없습니다 .
dataStore 라는 서비스가있는 경우 빅 데이터 객체가 변경 될 때마다 타임 스탬프를 업데이트 할 수 있습니다 . 이 방법으로 전체 개체를 자세히 보지 않고 변경 타임 스탬프 만보고 있습니다.
app.factory('dataStore', function () {
var store = { data: [], change: [] };
// when storing the data, updating the timestamp
store.setData = function(key, data){
store.data[key] = data;
store.setChange(key);
}
// get the change to watch
store.getChange = function(key){
return store.change[key];
}
// set the change
store.setChange = function(key){
store.change[key] = new Date().getTime();
}
});
그리고 지시에서 당신은 단지 타임 스탬프가 바뀌는 것을보고 있습니다
app.directive("myDir", function ($scope, dataStore) {
$scope.dataStore = dataStore;
$scope.$watch('dataStore.getChange("myKey")', function(newVal, oldVal){
if(newVal !== oldVal && newVal){
// Data changed
}
});
});