Wpis z mikrobloga

Pytanie do mireczkow, uzywal ktos angucomplete-alt do autouzupelniania? Mam z tym troche problem, probuje zrobic autouzupelnianie uzywajac tylko parametru local-search do ktorego podaje funkcje zwracajaca wyniki, po wpisaniu jakis znakow. Problem pojawia sie przy parametrze local-data, ktory w dokumentacji jest oznaczony jako niewymagany(nie mam wynikow lokalnych) i jezeli go nie dodam to wyszukiwanie sie zawiesza. Do wyszukiwania uzywam factory z premises itp. funkcja zwraca wyniki i jest spoko, ale nie wyswietlaja sie na liscie bo sie zawiesza. Ma ktos jakies pomysly albo porady jak zmusic to do dzialania?

Podaje przyklad:

`

$scope.autocompleteFilters = function(inputData){
$scope.filterResults(inputData).then(function(result){
return result;
});
};

$scope.filterResults = function(inputData){
$scope.locatData = [];
var deferred = $q.defer();
filterFactory.loadData('Object__c', inputData, {}).then(function(result){
angular.forEach(JSON.parse(result), function(filterObj , filterKey){
$scope.locatData.push(filterObj);
});
deferred.resolve($scope.locatData);
});
return deferred.promise;
}

#programowanie #angularjs
  • 6
@rancosster:
Nie znam tej biblioteki do uzupełniania, ale:
1. poczytaj o promisach, podejrzewam, że funkcja $scope.autocompleteFilters powinna zwrócić promise, nie zwraca nic
2. funkcja $scope.autocompleteFilters nie robi nic, tylko wywołuje drugą funkcję
3. co robi "filterFactory.loadData" ? zwraca stringa, skoro potem potem parsujesz go przez JSON.parse?
4.76
5. czym jest 'Object_c' ?
6. trochę to zagmatwane, ale po co iterujesz po elementach 'result' i każdy element wklejasz osobno do listy
@chester:
1. local-search, A function that search local data. It should take a input string and an array of items as arguments and returns an array of matched items.
2. Wlasnie o to mi chodzi, zeby wywowalo druga funkcje i zwrocilo jej wyniki, bo bede mial kilka inputow z roznymi opcjami autocomplete generowane dynamicznie na stronie.
3.
board.factory('filterFactory', function($q, $rootScope){
var factory = {};
factory.loadData = function(sobjectName, inputData){
var deferred =
@chester: Nie moge uzyc $http, z tego powodu ze #salesforce ma gotowy zestaw narzedzi, ktore musze uzyc i zwracaja gotowe dane z bazy.

Wlasnie kombinuje z tymi premises caly dzien w sumie, ale ten plugin zaczyna mnie juz #!$%@?, bo jak byk napisane w dokumentacji ze parametr nie jest wymagany, jak go nie mam to sie zawiesza.
Probuje zrobic to w ten sposob, ze zwracam bezposrednio wyniki uzywajac moich funkcji, i
@rancosster: taka mała uwaga: prOmise, nie prEmise.
Gratuluję. Jednak nadal optowałbym za poznaniem działania promise, bo skoro biblioteka salesforce zwraca gotowe dane z bazy, to pewnie te dane można podrzucić do tej opcji 'remote API andler' i byłoby zgodnie ze sztuką