- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发基于 Onsen UI(和 PhoneGap + AngularJS)的移动应用程序。
当我浏览应用程序的两个 html 页面时,索引加载完美,但登录后应显示的下一页不可用,样式完全关闭,并且没有控件在工作。
我有一个 index.html,它有以下内容:
<body>
<ons-navigator var="myNavigator" page="login.html">
</ons-navigator>
<ons-template id="login.html">
<ons-page ng-controller="LoginController" id="login">
<ons-toolbar>
<div class="center">Log In</div>
</ons-toolbar>
<div class="login-form">
<input type="text" class="text-input--underbar" placeholder="Email" ng-model="email">
<input type="text" class="text-input--underbar" placeholder="Password" ng-model="password">
<br><br>
<ons-button modifier="large" class="login-button" ng-click="checkLogin(email,password,spourl)" > Log In</ons-button>
</div>
</ons-page>
</ons-template>
</body>
main.html 的主体如下:
<body ng-controller="AppController">
<ons-tabbar>
<ons-tab active="true" page="upcoming_tasks.html">
....
</ons-tab>
<ons-tab page="settings.html">
....
</ons-tab>
</ons-tabbar>
<ons-template id="upcoming_tasks.html">
<ons-page id="upcoming_tasks">
....
</ons-page>
</ons-template>
<ons-template id="settings.html">
<ons-page id="settings">
....
</ons-page>
</ons-template>
我有两个 Controller :LoginController 成功登录后使用 myNavigator 转到 main.html(位于单独的 .html 文件中)AppController 在 main.html 文件中用于不同的操作。两者都是从 main.js 文件加载的,该文件包含在两个文件中。
如果我直接从浏览器分别访问这两个文件,它们可以正常工作(http://192.168..../index.html 正常,http://192.168.../main.html 也正常)。该错误仅在我从 index.html 文件导航到 main.html 时发生。
可能是什么问题?我对整个 AngularJS、Onsen UI 这件事还很陌生。
我真的不想将浏览器“导航”到 main.html,因为我正在使用服务在两个 Controller (登录名和密码)之间共享数据,如果浏览器重新加载 main.html 页面, Controller 将被初始化,数据将丢失。
这也是 main.js 文件的一个片段:
var myApp = angular.module('app', ['onsen']);
myApp.controller('LoginController', function ($scope, sharedProperties, Data) {
$scope.openProtectedPage = function () {
setTimeout(function() {
myNavigator.pushPage('main.html');
//window.location.href = 'main.html';
}, 1000);
}
$scope.checkLogin = function(email,password, url) {
//check email,pass and url
$scope.openProtectedPage();
}
});
myApp.controller('AppController', function ($scope, $timeout, sharedProperties, Data) {
$scope.email = sharedProperties.getUser();
$scope.password = sharedProperties.getPass();
$scope.url = sharedProperties.getUrl();
//different functions for loading data and working with it
}
最佳答案
这里有几个问题:
1 - ons-template
必须始终位于您的 index.html
中。否则,这些页面将不会在您使用 pushPage
时创建。将 upcoming_tasks.html
、settings.html
和任何其他模板移动到您的索引中。
2 - 从 main.html
页面中删除 body
标签。您只需要 index.html
中的那些文件,其余文件(包括使用 ons-template
声明的文件)必须仅包含您在导航器中显示的实际内容.
3 - ons-navigator
总是需要一个 ons-page
作为 child ,所以用 ons 包装你的
以避免可能出现的问题(当您执行 ons-tabbar
-pagepushPage('main.html')
时,您会将 ons-tabbar
包含在 ons-
)。index.html
中的导航器
4 - 也许您更喜欢在 openProtectedPage()
中使用 resetToPage()
而不是 pushPage()
这样用户就无法返回登录页面(已从页面堆栈中删除)。
Onsen UI 文档中有很多示例:http://onsen.io/guide/overview.html
希望对您有所帮助!
编辑:
index.html
:
<body>
<ons-navigator var="myNavigator" page="login.html">
</ons-navigator>
<ons-template id="login.html">
<ons-page ng-controller="LoginController" id="login">
<ons-toolbar>
<div class="center">Log In</div>
</ons-toolbar>
<div class="login-form">
<input type="text" class="text-input--underbar" placeholder="Email" ng-model="email">
<input type="text" class="text-input--underbar" placeholder="Password" ng-model="password">
<br><br>
<ons-button modifier="large" class="login-button" ng-click="checkLogin(email,password,spourl)" > Log In</ons-button>
</div>
</ons-page>
</ons-template>
<ons-template id="main.html">
<ons-page>
<ons-tabbar>
<ons-tab active="true" page="upcoming_tasks.html">
....
</ons-tab>
<ons-tab page="settings.html">
....
</ons-tab>
</ons-tabbar>
</ons-page>
</ons-template>
<ons-template id="upcoming_tasks.html">
<ons-page id="upcoming_tasks">
....
</ons-page>
</ons-template>
<ons-template id="settings.html">
<ons-page id="settings">
....
</ons-page>
</ons-template>
</body>
您可以选择将您想要的任何 ons-template
的内容放在一个单独的文件中。
关于javascript - 导航后 Onsen UI 页面无法正确加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32203402/
我通过 spring ioc 编写了一些 Rest 应用程序。但我无法解决这个问题。这是我的异常(exception): org.springframework.beans.factory.BeanC
我对 TestNG、Spring 框架等完全陌生,我正在尝试使用注释 @Value通过 @Configuration 访问配置文件注释。 我在这里想要实现的目标是让控制台从配置文件中写出“hi”,通过
为此工作了几个小时。我完全被难住了。 这是 CS113 的实验室。 如果用户在程序(二进制计算器)结束时选择继续,我们需要使用 goto 语句来到达程序的顶部。 但是,我们还需要释放所有分配的内存。
我正在尝试使用 ffmpeg 库构建一个小的 C 程序。但是我什至无法使用 avformat_open_input() 打开音频文件设置检查错误代码的函数后,我得到以下输出: Error code:
使用 Spring Initializer 创建一个简单的 Spring boot。我只在可用选项下选择 DevTools。 创建项目后,无需对其进行任何更改,即可正常运行程序。 现在,当我尝试在项目
所以我只是在 Mac OS X 中通过 brew 安装了 qt。但是它无法链接它。当我尝试运行 brew link qt 或 brew link --overwrite qt 我得到以下信息: ton
我在提交和 pull 时遇到了问题:在提交的 IDE 中,我看到: warning not all local changes may be shown due to an error: unable
我跑 man gcc | grep "-L" 我明白了 Usage: grep [OPTION]... PATTERN [FILE]... Try `grep --help' for more inf
我有一段代码,旨在接收任何 URL 并将其从网络上撕下来。到目前为止,它运行良好,直到有人给了它这个 URL: http://www.aspensurgical.com/static/images/a
在过去的 5 个小时里,我一直在尝试在我的服务器上设置 WireGuard,但在完成所有设置后,我无法 ping IP 或解析域。 下面是服务器配置 [Interface] Address = 10.
我正在尝试在 GitLab 中 fork 我的一个私有(private)项目,但是当我按下 fork 按钮时,我会收到以下信息: No available namespaces to fork the
我这里遇到了一些问题。我是 node.js 和 Rest API 的新手,但我正在尝试自学。我制作了 REST API,使用 MongoDB 与我的数据库进行通信,我使用 Postman 来测试我的路
下面的代码在控制台中给出以下消息: Uncaught DOMException: Failed to execute 'appendChild' on 'Node': The new child el
我正在尝试调用一个新端点来显示数据,我意识到在上一组有效的数据中,它在数据周围用一对额外的“[]”括号进行控制台,我认为这就是问题是,而新端点不会以我使用数据的方式产生它! 这是 NgFor 失败的原
我正在尝试将我的 Symfony2 应用程序部署到我的 Azure Web 应用程序,但遇到了一些麻烦。 推送到远程时,我在终端中收到以下消息 remote: Updating branch 'mas
Minikube已启动并正在运行,没有任何错误,但是我无法 curl IP。我在这里遵循:https://docs.traefik.io/user-guide/kubernetes/,似乎没有提到关闭
每当我尝试docker组成任何项目时,都会出现以下错误。 我尝试过有和没有sudo 我在这台机器上只有这个问题。我可以在Mac和Amazon WorkSpace上运行相同的容器。 (myslabs)
我正在尝试 pip install stanza 并收到此消息: ERROR: No matching distribution found for torch>=1.3.0 (from stanza
DNS 解析看起来不错,但我无法 ping 我的服务。可能是什么原因? 来自集群中的另一个 Pod: $ ping backend PING backend.default.svc.cluster.l
我正在使用Hibernate 4 + Spring MVC 4当我开始 Apache Tomcat Server 8我收到此错误: Error creating bean with name 'wel
我是一名优秀的程序员,十分优秀!