您好我正在使用带有导航列表的示例应用程序,但我想在其上创建一个登录页面,其中一旦我单击登录按钮并且在身份验证之后我必须将应用程序路由到主页面。 我试过下面的代码但没有发生任何事 oj.Router.rootInstance.go( '登录');
请帮忙。
应用程序:Oracle JET分发
代码:
function(oj,ko,app){//在加载所有必需模块时执行此回调
$(function() {
function init() {
oj.Router.sync().then(
function () {
// Bind your ViewModel for the content of the whole page body.
ko.applyBindings(app, document.getElementById('globalBody'));
// navigate the user to login or wherever you want them to be now
oj.Router.rootInstance.go('login');
},
function (error) {
oj.Logger.error('Error in root start: ' + error.message);
}
);
}
答案 0 :(得分:1)
您需要将路由器go()
命令移出main.js并转移到支持登录页面的viewModel中,并且仅在用户通过输入正确的用户名/通过身份验证测试时运行密码。
如果login是您希望他们看到的默认页面,请更改appController.js
中的router.configure和navData设置以使其成为默认页面:
self.router.configure({
'login': {label: 'Login', isDefault: true},
...
查看FixItFast sample code以获取登录页面的示例以及支持它的结构。 FixItFast是一个比标准Starter模板更复杂的例子,因为它假定移动优先,但signin.html视图和signin.js viewModel可能会给你很好的想法。
答案 1 :(得分:1)
首先,将登录页面设为默认页面。 然后(在你的login.html中)点击按钮,你可以调用一个函数(login.js中的函数)来验证你的用户名和密码。
self.signIn = function()
{
//your validation
if (login==success)
{
oj.Router.rootInstance.go('dashboard');
}
else
{
alert("check your details");
}
};
确保您已在路由器配置中添加仪表板页面
self.router.configure({
'dashboard': {label: 'Dashboard'},
'login': {label: '',isDefault: true}
});