Javascript Phonegap/AngularJS:can';无法使$apply()工作

Javascript Phonegap/AngularJS:can';无法使$apply()工作,javascript,angularjs,cordova,onsen-ui,Javascript,Angularjs,Cordova,Onsen Ui,我正在培训自己开发手机应用程序,目前我正在开发一款婴儿睡眠追踪应用程序,使用Phonegap、Onsen UI和AngularJS 在初始化时,用户必须定义他们的宝宝当前是醒着还是睡着才能启动跟踪器。我在主页上使用了一个模态窗口。一旦他们点击,我想在主页上显示一个文本,如“你的宝宝睡着了”或“你的宝宝醒了”,这取决于他们的选择 问题是,我无法在单击其中一个按钮后更新视图。。。我知道这是一个异步请求,所以我必须使用$apply()来重新启动角度摘要循环,但我无法让它工作 这是我的密码: Index

我正在培训自己开发手机应用程序,目前我正在开发一款婴儿睡眠追踪应用程序,使用Phonegap、Onsen UI和AngularJS

在初始化时,用户必须定义他们的宝宝当前是醒着还是睡着才能启动跟踪器。我在主页上使用了一个模态窗口。一旦他们点击,我想在主页上显示一个文本,如“你的宝宝睡着了”或“你的宝宝醒了”,这取决于他们的选择

问题是,我无法在单击其中一个按钮后更新视图。。。我知道这是一个异步请求,所以我必须使用$apply()来重新启动角度摘要循环,但我无法让它工作

这是我的密码:

Index.html

<!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>