OnsenUI无法访问代码中的组件

时间:2015-05-08 14:44:17

标签: angularjs onsen-ui

我正在使用OnsenUI 1.3.1(通过凉亭安装),AngularJS 1.3.15Cordova 5.0.0开发OnsenUI Cordova应用程序。我在JavaScript中找到ons-navigator对象时遇到了问题,OnsenUI网站上提到的所有方法(http://onsen.io/guide/overview.html#CallingComponentAPIsfromJavaScript)似乎都不适合我。我的代码设置如下:

的index.html:

...
  <body>
    <div ng-controller="MainController">
      <ons-navigator id="navigator" var="myNavigator" page="{{targetPage}}">
        <div>
            Hello!
        </div>
      </ons-navigator>
    </div>
    ...
  </body>
...

MainController:

angular.module('myApp.controllers')
  .controller('MainController', ['$log', '$scope',
    function ($log, $scope) {
      $scope.initialize = function () {
        $scope.targetPage = 'views/login.html';

        $log.info('scope navigator: ' + $scope.myNavigator);    // comes back as undefined
        $log.info('find navigator: ' + ons.findComponent('ons-navigator#navigator', document.body));    // comes back as null
      };

      $scope.initialize();

    }]);

我目前没有输出使用ons.findParentComponentUntil()方法的OnsenUI文档中概述的方法或涉及更改基于组件的对象的方法,但我已经查看了这些方法,并且他们没有&#39 ; t似乎也工作(返回undefined)。

有没有人有任何想法?谢谢!

1 个答案:

答案 0 :(得分:0)

您尝试在创建导航器元素之前尝试访问导航器元素,尝试使用ons.ready();执行代码,例如:

&#13;
&#13;
 ons.ready(function() {
      
      console.log("scope navigator: " + $scope.myNavigator);
});
&#13;
&#13;
&#13;