Ich versuche, die Datenquelle eines Widgets als Ergebnis einer Abfrage zu definieren, aber ich bin mir nicht sicher, ob es möglich ist.Abfrage als Widget Datenquelle
Ich arbeite mit SQL-Ansichten und einer Tabelle, ich möchte die Werte der IDs, die ich in der Tabelle habe, die aus den Ansichten kommen.
function queryValue(source, model, key){
console.log("source " + source);
app.datasources[model].query.filters.id._equals = source;
app.datasources[model].load(function() {
console.log(app.datasources.users.items[0][key]);
return app.datasources.users.items[0][key];
});
app.datasources[model].query.clearFilters();
}
aufrufen es wie:
queryValue(@datasource.item.[the_id], "[the_SQLView_Datasouce]", "[the_field_i_want]");
In diesem Fall wird das Widget eine Tabelle, so dass die fucntion würde die Menge der Elemente in der talbe wiederholen
Das Problem ist, dass entweder ich das gleiche ergebnis wie meny mal wie die menge an artikeln oder die erste nicht funktioniert!
Und das zweite Problem ist, dass das Ergebnis nicht überschreibt den Widget-Text zu zeigen.
Es ist eine sehr einfache Funktion und ich habe einige Workarounds gefunden, aber nicht mit der Datenquelle Feature und sie arbeiten zu langsam, irgendwelche Vorschläge? Ist es möglich, so etwas mit der Datenquelle zu tun?
Aus dem Screenshot sieht es so aus, als ob Sie versuchen, die ID der Relation anzuzeigen. Wenn Sie zwei Modelle (Tabellen) wie "Employee" und "Manager" haben oder wenn Sie ein Modell des selbstbezogenen Modells "Employee" (Tabelle) haben, können Sie einfach Prefetch für Ihre Datenquelle hinzufügen. In diesem Fall können Sie die Manager ID folgendermaßen binden: @ datasource.item.Manager.Id. Docs: https://developers.google.com/appmaker/models/datasources#prefetch –
Da es eine SQL-Ansicht ist, hat es keine Beziehung, so muss ich von Hand abfragen =) –
In diesem Fall, wenn die Tabelle Ist nur Ansicht, würde ich stattdessen eine berechnete Datenquelle verwenden. Dies reduziert die Anzahl der Aufrufe an Server und Datenbank, so dass Sie die gesamte Seitenleistung verbessern und die blinkenden Labels loswerden. Mit der aktuellen Implementierung, für die Tabelle mit N Zeilen wird App mindestens (N + 1 Aufrufe an den Server) + (N + 1 Aufrufe an die Datenbank). Mit berechneter Datenquelle reduzieren Sie es auf 1 + 1 = 2 Anrufe. –