Javascript DOM不是';在修改$scope后,无法刷新
我有一个HTML5离线网络应用程序,利用Angular。我想内置两个按钮。一个应该检查更新,另一个应该应用更新Javascript DOM不是';在修改$scope后,无法刷新,javascript,angularjs,html,Javascript,Angularjs,Html,我有一个HTML5离线网络应用程序,利用Angular。我想内置两个按钮。一个应该检查更新,另一个应该应用更新 如果更新已准备就绪,“检查更新”按钮不应可见,但“应用更新”按钮应可见 如果更新未准备就绪,则“检查更新”按钮应可见,但“应用更新”按钮不应可见 我通过导航控制器来实现这个逻辑 TermaPocketBookModule.controller("NavigationController", ['$scope', '$rootScope', function ($scope, $ro
- 如果更新已准备就绪,“检查更新”按钮不应可见,但“应用更新”按钮应可见
- 如果更新未准备就绪,则“检查更新”按钮应可见,但“应用更新”按钮不应可见
TermaPocketBookModule.controller("NavigationController", ['$scope', '$rootScope', function ($scope, $rootScope) {
//check to see if an update is available when the application starts
if (window.applicationCache.status === window.applicationCache.UPDATEREADY) {
$scope.ApplicationUpdateReady = true;
}
else {
$scope.ApplicationUpdateReady = false;
}
//add handler to handle the DOM's updateready event.
window.applicationCache.addEventListener('updateready', function () {
console.log("Update ready.");
$scope.ApplicationUpdateReady = true;
});
//button handler to apply an update
$scope.ApplyUpdate = function () {
console.log("Apply update clicked.");
window.applicationCache.swapCache();
location.reload();
}
//button handler to check for an update
$scope.CheckForUpdate = function () {
console.log("Checking for update.");
window.applicationCache.update();
}
}]);
这在我的HTML中有关联:
<ul class="nav navbar-nav" ng-controller="NavigationController">
<li ng-if="ApplicationUpdateReady"><a ng-click="ApplyUpdate()">Update Application</a></li>
<li ng-if="ApplicationUpdateReady != true"><a ng-click="CheckForUpdate()">Check for Updates</a></li>
</ul>
更新应用程序
检查是否有更新
以下是实际发生的情况:
$scope.ApplicationUpdateReady
而出现更新应用程序按钮。为什么这不起作用,我必须再次按下它才能显示“更新应用程序”按钮?这里有两件事:
$scope.model = {};
$scope.model.ApplicationUpdateReady = false;
window.applicationCache.addEventListener('updateready', function () {
console.log("Update ready.");
$scope.model.ApplicationUpdateReady = true;
$scope.$apply();
});
<ul class="nav navbar-nav" ng-controller="NavigationController">
<li ng-if="model.ApplicationUpdateReady"><a ng-click="ApplyUpdate()">Update Application</a></li>
<li ng-if="model.ApplicationUpdateReady != true"><a ng-click="CheckForUpdate()">Check for Updates</a></li>
</ul>
$scope.model={};
$scope.model.ApplicationUpdateReady=false;
window.applicationCache.addEventListener('updateready',function(){
log(“更新准备就绪”);
$scope.model.ApplicationUpdateReady=true;
$scope.$apply();
});
更新应用程序
检查是否有更新