Страница входа в Oracle jet

Привет Я создаю приложение с использованием Oracle JET, в котором после нажатия кнопки «Вход» на странице LoginTest она должна зайти на домашнюю страницу после проверки. Мне удалось проверить вход, но я не мог перенаправить его на главную страницу. Я пробовал использовать множественные привязки, но это бесполезно. Может кто-то помочь.

HTML-код

h1>logintest</h1>
<div align="center">
<label for="username">Username</label>
<input id="username" type="text" required 
       data-bind="ojComponent: {component: 'ojInputText',
                                validators: [{type: 'regExp', options: {pattern: '[a-zA-Z0-9]{3,}',
                                messageDetail: 'You must enter at least 3 letters or numbers'}}],
                            invalidComponentTracker: tracker}" /><br /><br />
<label for="password">Password</label>
<input id="password" type="password" required
       data-bind="ojComponent: {component: 'ojInputPassword',
                                validators: [{type: 'regExp', options : {pattern: '(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,}',
                                messageSummary : '{label} too Weak',
                                messageDetail: 'The password must contain atleast one uppercase, one lowercase, one number and must be 6 digits long'}}],
                                invalidComponentTracker: tracker}" /><br /><br />
<a class="oj-button-primary oj-button-xl" 
   href="http://localhost:8383/Test/index.html?root=home" id="create" type="button" 
   data-bind="ojComponent: {component: 'ojButton', 
                            label: 'Login',
                            disabled: shouldDisableCreate()},
        click: onClick"></a>
</div>

КОД JAVASCRIPT

define(['ojs/ojcore', 'knockout', 'ojs/ojinputtext', 'ojs/ojbutton', 'ojs/ojknockout-validation', 'ojs/ojmodel'
], function (oj, ko) {
    /**
     * The view model for the main content view template
     */
    function logintestContentViewModel() {
        var self = this;
        self.tracker = ko.observable();
        self.username = ko.observable("");
        self.password = ko.observable("");
        self.clickedButton = ko.observable();
        self.buttonClick = function(data, event)
        {
            var trackerObj = ko.utils.unwrapObservable(self.tracker);
            if (!this._showComponentValidationErrors(trackerObj))
            {
                return;
            }

        };
        self.routePage = function(data,event)
        {
            self.clickedButton(event.currentTarget.id);
            return true;  
        };
        self.onClick = function()
        {
            self.buttonClick();
            self.routePage();
        }
        self.shouldDisableCreate = function()
        {
          var trackerObj = ko.utils.unwrapObservable(self.tracker),
          hasInvalidComponents = trackerObj ? trackerObj["invalidShown"] : false;
          return  hasInvalidComponents;
        };
        self._showComponentValidationErrors = function (trackerObj)
        {
            trackerObj.showMessages();
            if (trackerObj.focusOnFirstInvalid())
            return false;
        };

    }
    return logintestContentViewModel;
});

javascript,oracle,knockout.js,login,oracle-jet,

0

Ответов: 2


1 принят

Если вы используете ojRouter, вы можете просто использовать

oj.Router.go («название маршрута»);

Если вы не используете ojRouter, вы можете использовать объект местоположения. Что-то вроде:

window.location.pathname = '/ главная страница'

Я рекомендую использовать ojRouter и метод canEnter () для таких вещей.

Демо-версия поваренной книги для маршрутизаторов: http://www.oracle.com/webfolder/technetwork/jet/jetCookbook.html?component=router&demo=simple

JSDocs for Router canEnter метод http://www.oracle.com/webfolder/technetwork/jet/jsdocs/oj.RouterState.html


0

Вы можете использовать

oj.Router.rootInstance.go('homepage');
JavaScript, оракул, knockout.js, Логин, оракул-струя,
Похожие вопросы