我正在使用带有 4D 后端数据库的 Ionic 和 AngularJS 开发在 Wakanda Digital App Factory 1.0.3 中构建的移动应用程序。
我有两种不同的 4D 方法,可通过 4D-Mobile 通过两个单独的 4D 表使用,这些表可通过两个不同的 Angular 控制器访问:
.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 方法的一个奇怪问题,即第一个方法可以工作,但第二个方法会失败,无论我先调用哪个方法。也就是说,如果我ds.server_log.www4DMionicErrorLog()
先调用它会起作用,但随后的调用会ds.servers.www4DMionicHomeOverview()
失败,直到我刷新浏览器。
反之亦然,如果我ds.servers.www4DMionicHomeOverview()
先打电话,那么它会起作用,但随后的电话会ds.server_log.www4DMionicErrorLog()
失败。
我得到的第二种方法的错误是:
ionic.bundle.js:25642 TypeError:无法读取未定义的属性“www4DMionicHomeOverview”
或者
ionic.bundle.js:25642 TypeError:无法读取未定义的属性“www4DMionicErrorLog”
取决于我首先调用的两种方法中的哪一种。
我很好奇这是否与我$wakanda.init
从每个控制器调用的方式有关。文档并没有说这样做不好。
$wakanda
设置一个 Angular 服务并在服务中解析会更好吗?