2017-04-12 58 views
0

您好我正在使用示例应用程序与导航列表,但我想创建一个登录页面在其上一次我点击登录按钮,认证后我必须将应用程序路由到主页面。 我尝试了下面的代码,但没有发生任何事情。 oj.Router.rootInstance.go('login');Oracle JET:想要创建一个登录页面,其中点击登录按钮应该路由我到主页

请大家帮忙。

应用:甲骨文JET分布

代码:

功能(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

由于JET是JS工具你就更有可能得到在Oracle TechNet论坛答案的Oracle专用包致力于JET。 [在此查找](https://community.oracle.com/community/development_tools/oracle-jet) – APC

+0

请阅读[我如何问一个好问题?](http://stackoverflow.com/help/how-询问),然后尝试提出更多问题。 –

+0

请阅读[为什么“有人可以帮助我?”不是一个实际的问题?](https://meta.stackoverflow.com/questions/284236/why-is-can-someone-help-me-not-an-实际问题),然后再试图提出更多问题。 –

回答

1
这个回调得到执行

你想要将路由器go()命令移出main.js并将其移入支持登录页面的viewModel,并且只有在用户通过输入正确的用户名/密码通过身份验证测试时才会运行。

如果登录你想让他们看到,改变router.configure和NAV数据设置在appController.js使默认页面默认页面:

self.router.configure({ 
    'login': {label: 'Login', isDefault: true}, 
     ... 

看一看在FixItFast sample code的示例一个登录页面和支持它的结构。 FixItFast是一个比标准Starter模板更加深入的示例,因为它假定了移动优先,但signin.html视图和signin.js viewModel可能会给你提供很好的想法。

+0

感谢您的及时回复。其中一个挑战是维护单页面应用程序。我已经在仪表板页面(主页)上,看起来像我需要根据登录验证来控制导航ojcomponents的* visible *属性。 – Smashinsameer

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} 
         }); 
相关问题