IonicとAngularJSを4Dバックエンドデータベースで使用して、Wakanda Digital App Factory 1.0.3で構築されたモバイルアプリケーションを開発しています。
.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);
});
})
私が最初にこれらの4Dメソッドを呼び出す奇妙な問題に気付いています:
私は2つの異なる角度のコントローラを介してアクセスされている2つの別々の4Dのテーブルを介した4D-モバイルを通じて利用可能な2つの異なった4Dメソッドは持っています1つは動作しますが、最初に呼び出すものに関係なく、2番目のものは失敗します。つまり、最初にds.server_log.www4DMionicErrorLog()
を呼び出すと、その後はブラウザが更新されるまでds.servers.www4DMionicHomeOverview()
の呼び出しが失敗します。
逆のことは、ds.servers.www4DMionicHomeOverview()
を最初に呼び出すと、最初に動作しますが、それ以降の呼び出しはds.server_log.www4DMionicErrorLog()
に失敗します。
私は第二の方法のために得るエラーは次のとおりです。私は最初の呼び出し二つの方法のどちらによって
ionic.bundle.js:25642 TypeError: Cannot read property 'www4DMionicHomeOverview' of undefined
または
ionic.bundle.js:25642 TypeError: Cannot read property 'www4DMionicErrorLog' of undefined
。
これは私が各コントローラから$wakanda.init
を呼び出していますどのように関連している可能性があれば、私は好奇心旺盛です。 documentationは、これを行うことが悪いとは言いません。
Angularサービスを設定してサービス内で$wakanda
を解決する方がよいでしょうか?
これらのコメントは、「アプリケーションで1回実行するためのInitメソッド(データベースの説明であるWAFカタログを取得します)」および「initパーツが完了した後、これを介してデータストアにアクセスできますシングルトン法 "
$wakandaResult.getDatastore = function() {
。だから、あなたは一度しか起動できないと仮定すると、ドキュメンテーションは、同じアプリケーションの例ではなく、2つの例を表示する必要があります。 – garethb@Tim:わかりませんが、あなたのui-routerを使用してそれぞれの状態で$ wakanda.init( 'xxx')を入力し、コントローラに結果などを注入します。PS:結果を知りましょう。PS:デバッガの使用を忘れないでください。 –