XDK 重定向到模板文件将无法正常工作
XDK redirect to template file won't work correctly
我试图在 Ajax 调用后重定向到模板文件,使用:
window.location.href = "templates/somepage.html";
它转到页面,但是,在该页面上,按钮无法正确加载,并且当我单击按钮时 JavaScript 不会被调用。我可能需要某种回调,因为需要调用 index.html
以及 templates/somepage.html
。
注意:我们正在使用 Ionic 框架,但我没有使用它的经验,因为我是一名 php 开发人员。另外,我更喜欢非 jquery 解决方案。谢谢
无法正确运行或显示的原因是您重定向到的文件缺少所有核心包含(CSS
和 JavaScript
)文件,如下所示:
about.html
这是一个基础 Ionic
模板文件,如您所见,它没有 <script></script>
或 <link>
标签。
<ion-view title="About" id="page9">
<ion-content overflow-scroll="true" padding="true" class="has-header">
</ion-content>
</ion-view>
因此您的 CSS
或 JavaScript
的 none 工作正常。
Ionic
建立在 AngularJS
之上,因此您可以使用状态转换器,而不是直接访问或重定向到模板文件。
您需要做的是将 $state
注入您的控制器,如下例所示:
routes.js
您应该已经熟悉所有这些,但是您将使用 myView
来指代状态。
[...].state('myView', {
url: '/my-url',
templateUrl: 'my/template/location.html',
controller: 'myViewCtrl'
});
controllers.js
在您的控制器中,您将注入 $state
用于更改 视图。
[...].controller('myCtrl', function ($state) {
/** This will be used to change to the route that we created above. **/
$state.go('myView');
});
当我第一次开始使用 Ionic
时,我也遇到过这个问题,我偶然发现了解决方案,并认为我可以提供帮助。
阅读Material
我试图在 Ajax 调用后重定向到模板文件,使用:
window.location.href = "templates/somepage.html";
它转到页面,但是,在该页面上,按钮无法正确加载,并且当我单击按钮时 JavaScript 不会被调用。我可能需要某种回调,因为需要调用 index.html
以及 templates/somepage.html
。
注意:我们正在使用 Ionic 框架,但我没有使用它的经验,因为我是一名 php 开发人员。另外,我更喜欢非 jquery 解决方案。谢谢
无法正确运行或显示的原因是您重定向到的文件缺少所有核心包含(CSS
和 JavaScript
)文件,如下所示:
about.html
这是一个基础 Ionic
模板文件,如您所见,它没有 <script></script>
或 <link>
标签。
<ion-view title="About" id="page9">
<ion-content overflow-scroll="true" padding="true" class="has-header">
</ion-content>
</ion-view>
因此您的 CSS
或 JavaScript
的 none 工作正常。
Ionic
建立在 AngularJS
之上,因此您可以使用状态转换器,而不是直接访问或重定向到模板文件。
您需要做的是将 $state
注入您的控制器,如下例所示:
routes.js
您应该已经熟悉所有这些,但是您将使用 myView
来指代状态。
[...].state('myView', {
url: '/my-url',
templateUrl: 'my/template/location.html',
controller: 'myViewCtrl'
});
controllers.js
在您的控制器中,您将注入 $state
用于更改 视图。
[...].controller('myCtrl', function ($state) {
/** This will be used to change to the route that we created above. **/
$state.go('myView');
});
当我第一次开始使用 Ionic
时,我也遇到过这个问题,我偶然发现了解决方案,并认为我可以提供帮助。
阅读Material