我正在使用Cordova 3.3.1-0.4.2和Angular 1.2.13
收到Cordova“ deviceready”事件后,我需要手动引导Angular。
我正在Nexus 5上进行测试,cordova run android
但在iPhone上却具有完全相同的行为。
为了简化问题,这是JS在全局文档范围内运行。脚本在结束</body>
标记之前加载。
这有效:
angular.bootstrap(document.getElementById("app"), ["MyApp"]);
这不起作用:
function init(){
angular.bootstrap(document.getElementById("app"), ["MyApp"]);
}
document.addEventListener('deviceready', function () {
init();
}, true);
但是,如果我添加alert("init")
到显示它正在运行的init方法中。同时alert(angle)和alert(document.getElementById(“
app”))表示它们存在。
我不明白为什么,由于调用了init(),因此从EventListener回调中调用它时不起作用,但是如果直接调用它,则它确实起作用。
看起来很奇怪/直觉。
任何人?
我发现的最佳解决方案是正常启动Angular,然后将Cordova作为返回Promise的模块加载,在设备准备就绪时解决。
angular.module('fsCordova', [])
.service('CordovaService', ['$document', '$timeout', '$window', '$q',
function($document, $timeout, $window, $q) {
var defer = $q.defer();
this.ready = defer.promise;
// Backup in the case that we did not received the event
// This seemed to be necessary with some versions of Cordova
// when testing via 'cordova serve' in a web browser
// but when on-device the event is received correctly
var timoutPromise = $timeout(function() {
if ($window.cordova){
defer.resolve($window.cordova);
} else {
defer.reject("Cordova failed to load");
}
}, 1200);
angular.element($document)[0].addEventListener('deviceready', function() {
$timeout.cancel(timoutPromise);
defer.resolve($window.cordova);
});
}
]);
用法:
angular.module('app', ['fsCordova']).
run(['$window', function($window){
// init Fastclick
FastClick.attach(angular.element($window.document.body)[0]);
}]).
controller('AppCtrl', ['$scope', 'CordovaService',
function($scope, CordovaService){
$scope.ready = false;
// when cordova is ready
CordovaService.ready.then(
function resolved(resp) {
$scope.ready = true;
},
function rejected(resp){
throw new Error(resp);
}
);
}
]);
我在GitHub上分享了这个引导项目
问题内容: 我正在使用Cordova和AngularJS开发移动应用程序。在准备好Cordova设备之前,如何限制AngluarJS的引导。基本上,我不想在设备准备就绪之前使用任何AngularJS控制器。 问题答案: 手动引导您的Angular应用程序: 从HTML代码中删除属性,因此Angular不会自行启动。 在您的JavaScript代码中添加以下内容: 有关引导应用程序的角度文档。
我正在使用jQuery Mobile,我无法理解经典文档就绪和jQuery Mobile页面事件之间的差异。 > 真正的区别是什么? 为什么应该 比更好 当您从一个页面转换到另一个页面时,页面事件的顺序是什么? 如何将数据从一个页面发送到另一个页面,是否可以访问上一个页面的数据?
现在,我注意到具有,但是events列表中的最后一个事件将状态列为,因为准备状态探测失败。(在应用程序日志中,我可以看到,自那以后,有更多的请求传入准备状态探测,并且它们都成功了。) 我应该如何解释这些信息?Kubernetes认为我的豆荚准备好了,还是没有准备好?
我无法创建某个docker容器,因为jenkins告诉我该名称已在使用中。 我已尝试查找或删除此容器,但无法执行以下操作: 容器是通过jenkins构建的,在不同的构建中,总是有相同的容器id在使用中被否认。我们有八个不同的jenkins节点,这项工作在其中七个节点上工作,创建和删除具有该名称的docker图像。 如何移除这个“幽灵”容器?Allready尝试了但没有成功:
我遇到了一个问题: 获取健康检查以成功。尝试使用容器本机负载平衡(CNLB)时,在IIS容器中运行的Net app。 我有一个网络endpoint组(NEG),由GKE中的入口资源定义和VPC本机集群创建。 当我通过公开NodePort或制作LoadBalancer类型的服务来规避CNLB时,站点会毫无问题地解决。 所有的吊舱条件从一个描述看起来不错:吊舱准备就绪 运行时会显示网络endpoint
智能手机和平板电脑的普及,为用户与浏览器交互引入了一种新的方式,而一类新事件也应运而生。 设备事件(device event)可以让开发人员确定用户在怎样使用设备。W3C 从2011 年开始着手制定一份关于设备事件的新草案(http://dev.w3.org/geo/api/spec-source-orientation.html),以涵盖不断增长的设备类型并为它们定义相关的事件。本节会同时讨论这