pushPage не может работать - телефонная связь Onsen monaca

JS

app.controller('categoryController', function($scope,$http){
    $http.get('http://xxxxxxxxxxxx.com/public/api/v1/category').success(function(response){
        $scope.myCategory = response.data;
    });

    $scope.showSubCategory = function(index) {
        var selectedItem = $scope.myCategory[index];
        var options = { animation: 'slide' };

        $scope.myCategory.selectedItem = selectedItem;

        $scope.ons.navigator.pushPage('subcategory.html', options, {name : selectedItem.name}); 
    };
});

HTML/угловой/онсэн

  <ons-navigator>
    <ons-page>
        <ons-toolbar>
            <div class="left">
                <ons-toolbar-button ng-click="app.slidingMenu.toggleMenu()"><ons-icon icon="bars"></ons-icon></ons-toolbar-button>
            </div>
            <div class="center">Home</div>
            <div class="right">
                <ons-toolbar-button ng-click="app.slidingMenu.toggleMenu()"><ons-icon icon="fa-search"></ons-icon></ons-toolbar-button>
            </div>
        </ons-toolbar>


        <ons-list ng-controller="categoryController" id="category-lists">
            <ons-list-item modifier="chevron" class="item" ng-repeat="item in myCategory" ng-click="showSubCategory($index)">
                <ons-row>
                    {{item.name}}
                </ons-row>                          
            </ons-list-item>
        </ons-list>

    </ons-page>   
  </ons-navigator>

Ошибка

TypeError: невозможно вызвать метод pushPage неопределенного в Scope.$scope.showSubCategory (file:///data/data/com.example.helloworld/files/projects/cloud/558d3c277e2193c742d69fea/www/components/app.js:16 :27) в файле:///data/data/com.example.helloworld/files/projects/cloud/558d3c277e2193c742d69fea/www/components/loader.js:1439:30512 в файле:///data/data/com. example.helloworld/files/projects/cloud/558d3c277e2193c742d69fea/www/components/loader.js:1448:18904 в Scope.$eval (файл:///data/data/com.example.helloworld/files/projects/cloud/ 558d3c277e2193c742d69fea/www/components/loader.js:1437:28127) в Scope.$apply (file:///data/data/com.example.helloworld/files/projects/cloud/558d3c277e2193c742d69fea/www/components/loader.js :1437:28433) в HTMLElement.listener (file:///data/data/com.example.helloworld/files/projects/cloud/558d3c277e2193c742d69fea/www/components/loader.js:1448:18886) в HTMLElement.eventHandler ( файл:///data/data/com.example.helloworld/files/projects/cl oud/558d3c277e2193c742d69fea/www/components/loader.js:1434:29261) в FastClick.sendClick (file:///data/data/com.example.helloworld/files/projects/cloud/558d3c277e2193c742d69fea/www/components/loader. js:1441:13284) в FastClick.onTouchEnd (file:///data/data/com.example.helloworld/files/projects/cloud/558d3c277e2193c742d69fea/www/components/loader.js:1441:17447) в HTMLBodyElement. (файл:///data/data/com.example.helloworld/files/projects/cloud/558d3c277e2193c742d69fea/www/components/loader.js:1441:10005)


Привет! Я использую monaca.pushPage(subcategory.html, .....) и никаких ошибок, но не могу перейти на страницу subcategory.html.

Любая помощь приветствуется.


person Njaz Ndot    schedule 27.06.2015    source источник


Ответы (1)


Переменная ons больше не хранит навигаторы. Вы должны использовать атрибут var в навигаторе и дать ему имя для последующего вызова. Например:

<ons-navigator var="myNavigator">
    ...
</ons-navigator>

А затем используйте его с myNavigator.pushPage(...). Подробнее здесь: http://onsen.io/reference/ons-navigator.html

Надеюсь, поможет!

person Fran Dios    schedule 29.06.2015