Ich entwickle eine mobile Anwendung in Wakanda Digital App Factory 1.0.3 mit Ionic und AngularJS mit einer 4D Backend-Datenbank.
Ich habe zwei verschiedene 4D Methoden zur Verfügung, bis 4D-Mobile über zwei getrennte 4D Tabellen, die über zwei verschiedene Winkel Controller zugegriffen werden:
.controller('homeCtrl', function($scope, $wakanda) {
$wakanda.init('servers').then(function(ds) {
ds.servers.www4DMionicHomeOverview().$promise.then(function(event) {
$json = event.result;
$scope.overview = $json.servers;
$scope.healthCheck = $json.healthCheck;
}, function(err) {
debugger
console.log(err);
});
}, function(err) {
debugger
console.log(err);
});
})
.controller('errorLogCtrl', function($scope, $wakanda) {
$wakanda.init('server_log').then(function(ds) {
ds.server_log.www4DMionicErrorLog().$promise.then(function(event) {
$json = event.result;
$scope.errors = $json;
}, function(e) {
debugger
console.log(e);
});
}, function(e) {
debugger
console.log(e);
});
})
Ich bin ein seltsames Problem bemerken diese 4D Methoden, dass der erste Aufruf Einer wird funktionieren, aber der zweite wird scheitern, egal welchen ich zuerst anrufe. Das heißt, wenn ich ds.server_log.www4DMionicErrorLog()
zuerst anrufe funktioniert es aber dann nachfolgende Aufrufe an ds.servers.www4DMionicHomeOverview()
scheitern, bis ich den Browser aktualisieren.
Das Gegenteil ist auch wahr, wenn ich zuerst ds.servers.www4DMionicHomeOverview()
aufrufen dann funktioniert es aber nachfolgende Aufrufe an ds.server_log.www4DMionicErrorLog()
fehlschlagen.
Der Fehler i für das zweite Verfahren erhalten ist:
ionic.bundle.js:25642 TypeError: Cannot read property 'www4DMionicHomeOverview' of undefined
oder
ionic.bundle.js:25642 TypeError: Cannot read property 'www4DMionicErrorLog' of undefined
Je nachdem, welche der beiden Methoden, die ich zuerst nennen.
Ich bin gespannt, ob dies in Zusammenhang stehen kann, wie ich $wakanda.init
von jedem Controller nenne. Die documentation sagt nicht, dass es schlecht ist, dies zu tun.
Wäre es besser, einen Angular Service einzurichten und $wakanda
im Service zu lösen? in Ihren Controller
Gefunden diese Kommentare in der Wakanda-Quelle "Init-Methode einmal auf Ihrer Anwendung (die den WAF-Katalog, eine Beschreibung Ihrer Datenbank abrufen wird)" und "Nach dem Start Teil getan, können Sie auf den Datenspeicher über diese zugreifen Singleton-Methode "
$wakandaResult.getDatastore = function() {
.Angenommen, Sie können nur einmal init, muss die Dokumentation zeigen 2 Beispiele, wie es geht, nicht ein Beispiel in der gleichen App – garethb@Tim: Ich weiß nicht wakanda, aber wenn Sie mit UI-Router ich vorschlagen, dass Sie Ihre auflösen $ wakanda.init ('xxx') in jedem sate, dann in Ihrem Controller injizieren Sie das Ergebnis usw. Lassen Sie uns über das Ergebnis wissen, PS: Vergessen Sie nicht, den Debugger zu verwenden :) –