Javascript Phonegap/AngularJS:can';无法使$apply()工作
我正在培训自己开发手机应用程序,目前我正在开发一款婴儿睡眠追踪应用程序,使用Phonegap、Onsen UI和AngularJS 在初始化时,用户必须定义他们的宝宝当前是醒着还是睡着才能启动跟踪器。我在主页上使用了一个模态窗口。一旦他们点击,我想在主页上显示一个文本,如“你的宝宝睡着了”或“你的宝宝醒了”,这取决于他们的选择 问题是,我无法在单击其中一个按钮后更新视图。。。我知道这是一个异步请求,所以我必须使用$apply()来重新启动角度摘要循环,但我无法让它工作 这是我的密码: Index.htmlJavascript Phonegap/AngularJS:can';无法使$apply()工作,javascript,angularjs,cordova,onsen-ui,Javascript,Angularjs,Cordova,Onsen Ui,我正在培训自己开发手机应用程序,目前我正在开发一款婴儿睡眠追踪应用程序,使用Phonegap、Onsen UI和AngularJS 在初始化时,用户必须定义他们的宝宝当前是醒着还是睡着才能启动跟踪器。我在主页上使用了一个模态窗口。一旦他们点击,我想在主页上显示一个文本,如“你的宝宝睡着了”或“你的宝宝醒了”,这取决于他们的选择 问题是,我无法在单击其中一个按钮后更新视图。。。我知道这是一个异步请求,所以我必须使用$apply()来重新启动角度摘要循环,但我无法让它工作 这是我的密码: Index
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="mobile-web-app-capable" content="yes">
<title>Colette</title>
<link rel="stylesheet" href="lib/onsen/css/onsenui.css">
<link rel="stylesheet" href="styles/onsen-css-components-blue-basic-theme.css">
<link rel="stylesheet" href="styles/app.css"/>
<script src="lib/onsen/js/angular/angular.js"></script>
<script src="lib/onsen/js/onsenui.js"></script>
<script src="lib/jquery-2.1.1.min.js "></script>
<script src="cordova.js"></script>
<script>
document.addEventListener("deviceready", function() {
// retrieve the DOM element that had the ng-app attribute
var domElement = $('html');
angular.bootstrap(domElement, ["app"]);
}, false);
var app = angular.module('app',['onsen']);
</script>
<script src="lib/moment.js"></script>
<script src="lib/utils.js"></script>
<script src="home.js"></script>
<script src="daily_stats.js"></script>
<script src="history.js"></script>
<script src="settings.js"></script>
</head>
<body>
<ons-sliding-menu
menu-page="menu.html" main-page="home.html" side="left"
var="menu" type="reveal" max-slide-distance="260px" swipable="true">
</ons-sliding-menu>
</body>
</html>
当按下一个初始按钮时,将使用good参数调用init()
方法。但是视图没有更新
我评论了menu.setMainPage('home.html')代码>,这是重新加载页面的临时解决方案
我似乎不知道我做错了什么
我对这三种技术(Phonegap、Onsen UI和Angular.js)也很陌生,目前这款应用程序是一种培训
谢谢你的帮助 每个控制器都是一个新实例,而不是单个实例。因此,您正在通过init()更新一个控制器的状态,但是您尝试更新的ui绑定到另一个控制器实例的变量,该控制器实例具有单独的$scope
<ons-modal id="welcome" ng-controller="home">
...
</ons-modal>
<ons-page modifier="home" class="home" ng-controller="home">
...
</ons-page>
...
...
一种解决方案是将html包装在另一个标记中,并将控制器分配给该标记。然后移除另外两个现有控制器
<div ng-controller="home">
<ons-modal id="welcome">
...
</ons-modal>
<ons-page modifier="home" class="home">
...
</ons-page>
</div>
...
...
<ons-modal id="welcome" ng-controller="home">
...
</ons-modal>
<ons-page modifier="home" class="home" ng-controller="home">
...
</ons-page>
<div ng-controller="home">
<ons-modal id="welcome">
...
</ons-modal>
<ons-page modifier="home" class="home">
...
</ons-page>
</div>