2014-02-07 51 views
0

我正在嘗試通過我的web應用程序實現註冊服務的最簡單方法。該應用的着陸頁是登錄頁面,其中有一個鏈接到註冊頁面。我似乎無法簡單地重定向到部分標誌 - 我認爲它被身份驗證阻止。因此,我已將註冊表單包含在我的index.html中,並帶有登錄表單。我試圖弄清楚如何使用ng-show來顯示註冊表單,並在單擊註冊按鈕時隱藏註冊表單,但是遇到困難。任何人都可以建議如何做到這一點,或者如果有更好的方法?在角度js中呈現註冊表單通過身份驗證被阻止

的index.html

<html> 
<head> 
    <title> Application</title> 
//Links to stylesheets here 
</head> 
<body ng-app="myApp"> 

//This is what the user sees when they navigate to the page 

    <div ng-controller="SignInCtrl"> 
     <div ng-show="!isAuthenticated" ng-hide = "signup"> 
      <form class = "form-signin"> 

       <div class="control-group"> 
        <div class="controls"> 
      <br /> 
      <input type="text" ng-model="username"> 
      </div> 

      <div class="controls"> 
      <input type="password" ng-model="password"> 
      </div> 
      <div class="controls"> 
      <button class = "btn btn-default" ng-click="signIn()">Sign In</button> 

//This is the link to sign up 
      <a ng-model = "signup">Sign Up</a> 

      </div> 
     </div> 
     </form> 
     </div> 

     <div ng-controller = "AccountNewController"> 
      <div ng-show = "signup"> 
      This is where my sign up form will appear when my signup button is clicked. 
      </div> 
     </div>  

//This part of index.html is only shown when a user has been authenticated 

     <div ng-show="isAuthenticated"> 

      <div class="col-md-2"> 
//Menu Bar code here 
</div> 
<div class="col-md-10"> 

//Other app partials are rendered here 

    <div ng-view></div>  
</div> 

     </div> 
    </div> 

//Links to JS files here 
</body> 
</html> 
+0

ng-show應該可以正常工作,可能是您的js代碼的問題 –

+0

我沒有任何JS代碼用於ng-show指令嗎? – bookthief

回答

0

有一些地方,你的代碼似乎沒有任何意義,我

<div ng-controller="SignInCtrl"> 
     <div ng-show="!isAuthenticated" ng-hide = "signup"> 
      <form class = "form-signin"> 

爲什麼使用ng-showng-hide當一個人做其他的確切翻轉?

//This is the link to sign up 
      <a ng-model = "signup">Sign Up</a> 

ng-model綁定到錨?


我認爲你可以通過只使用 ng-show來解決這個問題。

我會更新的答案,如果你能提供一個plnkr


編輯: 已顯示出了DIV以未通過身份驗證的用戶和「隨需應變」通過點擊某個地方,你可以像這樣:

<div ng-controller="SignInCtrl" ng-init="signup = false"> 
     <div ng-show="!isAuthenticated || signup"> 
      <form class = "form-signin"> 

這一個 「點擊上申請」

//This is the link to sign up 
      <button ng-click="signup = true">Sign Up</button> 

或者這樣來切換註冊DIV

//This is the link to sign up 
      <button ng-click="signup = !signup">Sign Up</button> 
+0

如果用戶未通過身份驗證(因此ng-show =「!isAuthenticated」),我需要顯示登錄div,並且我需要在用戶通過身份驗證或用戶單擊註冊時隱藏它(因此ng-hide = 「註冊」)。我正在用ng-model進行試驗,看看它是否會使ng顯示工作正如我在官方角度文檔中看到的那樣。我也嘗試了ng-click,但那也沒有奏效。謝謝,我會在一個plnkr上工作。 – bookthief

+1

'ng-show'已經這樣做了。當用戶被認證時,isAuthenticated將是'true',因此它的翻轉將是'false','ng-show = false'將隱藏DIV。我將更新點擊部分的答案 – domokun

+0

謝謝,但是當我導航到頁面時顯示註冊div,而無需點擊註冊按鈕。 – bookthief