Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript TypeError:无法读取属性';setMainPage';onsen ui中未定义的,angularjs_Javascript_Jquery_Angularjs_Onsen Ui - Fatal编程技术网

Javascript TypeError:无法读取属性';setMainPage';onsen ui中未定义的,angularjs

Javascript TypeError:无法读取属性';setMainPage';onsen ui中未定义的,angularjs,javascript,jquery,angularjs,onsen-ui,Javascript,Jquery,Angularjs,Onsen Ui,我收到TypeError:无法读取未定义的属性“setMainPage”error, 对于以下angularjsconfig和html,我不明白为什么会出现此错误,因为setMainPage已经在onsen ui框架中定义,请帮助我,提前感谢 错误: TypeError: Cannot read property 'setMainPage' of undefined at Object.$stateProvider.state.state.onEnter (app.js:28) at Objec

我收到
TypeError:无法读取未定义的属性“setMainPage”
error, 对于以下
angularjs
config
html
,我不明白为什么会出现此错误,因为
setMainPage
已经在
onsen ui
框架中定义,请帮助我,提前感谢

错误:

TypeError: Cannot read property 'setMainPage' of undefined
at Object.$stateProvider.state.state.onEnter (app.js:28)
at Object.invoke (onsenui_all.min.js:3)
at y.transitionTo.y.transition.M.then.y.transition.y.transition (angular-ui-router.min.js:7)
at processQueue (onsenui_all.min.js:6)
at onsenui_all.min.js:6
at Scope.parent.$get.Scope.$eval (onsenui_all.min.js:8)
at Scope.parent.$get.Scope.$digest (onsenui_all.min.js:8)
at Scope.parent.$get.Scope.$apply (onsenui_all.min.js:8)
at onsenui_all.min.js:2
at Object.invoke (onsenui_all.min.js:3)
 <!DOCTYPE HTML>
<html ng-app="itApp">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">     

        <script src="onsen/js/angular/angular.min.js"></script>     
        <script src="onsen/js/onsenui.min.js"></script>
        <script src="onsen/js/angular/angular-ui-router.min.js"></script>       

        <link rel="stylesheet" href="onsen/css/onsenui.css">
        <link rel="stylesheet" href="onsen/css/onsen-css-components.css">       

        <script src="jsScripts/app.js"></script>        
        <script src="jsScripts/controllers.js"></script>                    
    </head>
    <body ng-controller="UserController">
        <ons-tabbar  var="appTabbar" animation="none">
            <ons-tab ui-sref="navigator.master">
                <ons-icon icon="ion-home"></ons-icon>
                <span style="font-size: 14px">MasterDetail</span>
            </ons-tab>
            <ons-tab ui-sref="sliding.main">
                <ons-icon icon="ion-star"></ons-icon>
                <span style="font-size: 14px">SlidingMenu</span>
            </ons-tab>
        </ons-tabbar>

        <ons-template id="html/tab1.html">
            <ons-sliding-menu menu-page="menu.jsp" side="left" var="appMenu" type="reveal" max-slide-distance="260px" swipeable="true">
            </ons-sliding-menu>
        </ons-template>

        <ons-template id="html/tab2.html">
            <ons-navigator title="Navigator" var="appNavigator">
            </ons-navigator>
        </ons-template>

    </body>
</html>
app.js(angularjs配置)

html:

TypeError: Cannot read property 'setMainPage' of undefined
at Object.$stateProvider.state.state.onEnter (app.js:28)
at Object.invoke (onsenui_all.min.js:3)
at y.transitionTo.y.transition.M.then.y.transition.y.transition (angular-ui-router.min.js:7)
at processQueue (onsenui_all.min.js:6)
at onsenui_all.min.js:6
at Scope.parent.$get.Scope.$eval (onsenui_all.min.js:8)
at Scope.parent.$get.Scope.$digest (onsenui_all.min.js:8)
at Scope.parent.$get.Scope.$apply (onsenui_all.min.js:8)
at onsenui_all.min.js:2
at Object.invoke (onsenui_all.min.js:3)
 <!DOCTYPE HTML>
<html ng-app="itApp">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">     

        <script src="onsen/js/angular/angular.min.js"></script>     
        <script src="onsen/js/onsenui.min.js"></script>
        <script src="onsen/js/angular/angular-ui-router.min.js"></script>       

        <link rel="stylesheet" href="onsen/css/onsenui.css">
        <link rel="stylesheet" href="onsen/css/onsen-css-components.css">       

        <script src="jsScripts/app.js"></script>        
        <script src="jsScripts/controllers.js"></script>                    
    </head>
    <body ng-controller="UserController">
        <ons-tabbar  var="appTabbar" animation="none">
            <ons-tab ui-sref="navigator.master">
                <ons-icon icon="ion-home"></ons-icon>
                <span style="font-size: 14px">MasterDetail</span>
            </ons-tab>
            <ons-tab ui-sref="sliding.main">
                <ons-icon icon="ion-star"></ons-icon>
                <span style="font-size: 14px">SlidingMenu</span>
            </ons-tab>
        </ons-tabbar>

        <ons-template id="html/tab1.html">
            <ons-sliding-menu menu-page="menu.jsp" side="left" var="appMenu" type="reveal" max-slide-distance="260px" swipeable="true">
            </ons-sliding-menu>
        </ons-template>

        <ons-template id="html/tab2.html">
            <ons-navigator title="Navigator" var="appNavigator">
            </ons-navigator>
        </ons-template>

    </body>
</html>

主要细节
滑动菜单

在将
appMenu
元素加载到DOM之前,您可能正在尝试访问该元素。尝试将所有
app.config()
代码包装到
ons.ready()函数中。此函数在执行其内容之前等待加载所有DOM元素

例如:

var-app=angular.module('itApp',['onsen','ui.router']);
ons.ready(函数(){
app.config(函数($stateProvider,$urlRouterProvider){
//内容
});

});
错误并不是说未定义
setMainPage
,而是说未定义
appMenu
,因此无法从该变量调用方法。因为setMainPage已在onsen ui框架中定义-显然情况并非如此。可能是
appMenu
尚未在
config
生命周期中定义。检查
onsen ui
注册
appMenu
的位置。这可能在
run
阶段。我已经在中定义了var=“appMenu”,您无法访问将在角度
config
阶段的
HTML
中定义的变量。我应该在那里看到什么??它没有提到任何关于配置阶段的内容。它就是这样,你不能改变它。在配置阶段,HTML指令尚未计算,因此不存在。这是简单的逻辑!谢谢你的帮助。。这对我真的很有帮助