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指令尚未计算,因此不存在。这是简单的逻辑!谢谢你的帮助。。这对我真的很有帮助