我正在编写一个单页 appgyver js 应用程序。当应用程序加载(ondeviceready)时,它会检查用户是否通过 js 登录,如果是,它会触发 js 方法(方法 1)。js 方法做了几件事,最后是更新导航栏标题。
我遇到了一个问题,即 application.js 中的样板代码
angular.module('SteroidsApplication', [
'supersonic'
])
.controller('IndexController', function($scope, supersonic) {
$scope.navbarTitle = "AppName";
});
似乎在方法 1 运行后运行,尽管在 html 文件的头部被调用。方法 1 在 index.html 的正文中。
方法 1 确实运行,并且调用了 supersonic.ui.navigationBar.update 方法的成功处理程序。如果我在初始启动后运行方法 1,则导航栏更新按预期工作。
有谁知道为什么样板方法在方法 1 之后运行,以及如何解决这个问题?
编辑 1
如果我注释掉
$scope.navbarTitle = "AppName";
出现同样的问题。
编辑 2
这绝对是时间问题。如果我将方法 1 延迟 3 秒(使用 setTimeout),问题就会消失。这并不能解决问题,但它确实证实了我最初的怀疑。