2017-05-05 4 views
0

안녕하세요 Oracle JET을 사용하는 응용 프로그램을 만들고 있습니다. LoginTest 페이지에서 Login 단추를 클릭하면 확인 후 홈페이지로 연결됩니다. 입력 내용의 유효성을 검사했지만 홈페이지로 연결할 수 없습니다. 여러 바인딩을 사용하여 시도했지만 아무 쓸모가 있습니다. 누군가 도움을 청할 수 있습니까? 당신이 ojRouter를 사용하는 경우Oracle jet의 로그인 페이지

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> 

자바 스크립트 코드

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; 
}); 

답변

1

, 당신은 단순히

oj.Router.go ("경로 이름을 사용할 수 있습니다 ");

ojRouter를 사용하지 않는 경우 위치 객체를 사용할 수 있습니다. 뭔가 같이 :

window.location.pathname = '/ 홈페이지'

나는 ojRouter를 사용하는 것이 좋습니다 그리고 이런 것들에 대한 canEnter() 메소드입니다.

라우터 요리 책 데모 : 라우터 canEnter 방법에 대한 http://www.oracle.com/webfolder/technetwork/jet/jetCookbook.html?component=router&demo=simple

JSDocs는 http://www.oracle.com/webfolder/technetwork/jet/jsdocs/oj.RouterState.html

+0

이 도와 주셔서 너무 감사합니다! 그것은 windown.location.href 객체와 잘 작동했습니다. – Arun