Skip to main content

Angular UI Routing (angular-ui-router) problem with '-' in the state name - model is not bound in first load.

Issue:
angular-ui-router confused with state names separated with '-' .
Ex. Sign-up vs Sign-up-user.

Though it loads the template it is not binding the model in the first load. You have to click same link again to get the form fields populated.

Angular-ui- router - almost treating it as sub url path like in " sign-up.user" the URL will be-  'sign-up/user' .

 FIX:
Avoid same prefix separated by '-'.
 Use  some thing like  'signup-user' instead of 'sign-up-user' that repeats the other route 'sign-up'.

Code:
 This below code will not populate the form fields first time.
app.js
 .state('sign-up', { 
        url: '/sign-up',
        templateUrl: 'views/sign-up-options.html'
      })
     .state('sign-up-user', {                
        url: '/sign-up-user',                    -----------------------------> This URL is compared with the previous URL and is still loading and the template and controller, but not binding. It works if changed to '/signup-user'
        templateUrl: 'views/sign-up-user.html',
        controller: 'SignUpController'
      })
 .state('sign-up-success', {
        url: '/sign-up/success',
        templateUrl: 'views/sign-up-success.html'
      });
  
Controller:
 .controller('SignUpController', ['$scope',   '$state',    
      function($scope,  $state ) {
        $scope.user = {
          email: 'user@u.com',
          password: ' password',
            repassword:null
        };
    
        $scope.register = function() {
           console.log('register called');
        };
  }]);

HTML:

<section>
  <form name="form" ng-submit="register()">
    <fieldset>
      <legend>Sign up form</legend>

      <div class="form-group">
        <label>Email</label>
        <input name="email" type="text" ng-model="user.email">
      </div>

      <div class="form-group">
        <label>Password</label>
        <input name="password" type="password" ng-model="user.password">
      </div>

      <div class="actions">
        <label></label>
        <button>Sign up</button>
      </div>
    </fieldset>
  </form>
</section>
 

Comments

Popular posts from this blog

LLM on Mobile Phone : Mini Universal data and assistant running on an android smart phone Galaxy S23

  Imagine a world where everyone has access to a mini #OpenAI's #ChatGPT on their mobile phone, answering any question on any topic, right from their local phone memory. No need for internet. This is the future of #LLMs on mobile devices, and it's happening now. #MLC-AI has created a way to install a 3 billion parameter #RedPajam #LLMModel on a #Galaxy #S23 smartphone. This is a powerful #LLM that can generate text, translate languages, write different kinds of creative content, and answer your questions in an informative way. And it's all available on your phone, without the need for an internet connection. This could have a profound impact on people all over the world. Millions of suburban students who don't have access to the internet could now have access to a universal data source that can answer most of their questions. Refugee camps around the world could also benefit from this technology, giving refugees access to information and resources that they might not ot...

Javascript 3 dimentional matrix html board onclick empty current box

javascript 3 dimentional matrix html board onclick empty current box  Algorithm! Rules: 1. Only immediate Box can be swapped. Should not jump another box 2. Only directions allowed: Left, Right, Up, Down. 3. Should not swap diagonally.   See the Pen 3d matrix map numbers. by PV ( @moorthi07 ) on CodePen .   function hasClass(elem, className) {   return elem.className.split(" ").indexOf(className) > -1; } function addClick() {   var btn = '<button class="btn1">kkkkk</button>';   document.getElementById("container").innerHTML += btn; } // function boxbodyClick(obj) { //   /* console.log(';;;',obj.className) */ //   /* alert(obj) */ // } var arr = [3]; for (var i = 0; i < 3; i++) {   arr[i] = new Array(3); } var emti = 0; var emtj = 0; function btnClick(obj, i, j) {   if (arr[i][j] !== "-") {            if (j + 1 == emtj || j == emtj || j - 1 == emtj)...

Agentic AI growth could make GenAI providers to charge $1000-$2000 per month - #Cathywood , here is how.

      #Cathywood predicts that as the #agenticgenai grows the #GenAI service providers like openai, gemini, Copilot, etc will be able to charge $1000 - $2000 per month to their business customers. And she adds, "this is going to happen". Why this is important: Remember #Cathywood made a monster call in 2018, predicting that Tesla would hit $4,000 in five years. And eventually Tesla hit Wood's price target, with shares closing at $816, or $4,080 on a split adjusted basis (Jan. 2021). How this could happen: #AgenticGenAi means , 1. Integrating a business service with GenAI providers like Gemini/ChatGPT as an agent and make available in the chat interface. 2. Less human interaction and more calls to the GENAI Models. Nothing totally new, its similar to 'Ok google play a song from spotify' 'Alexa, order 8 pack dove on amazon' For example, when booking a flight, instead of navigating a complex travel website, users can simply provide a text prompt...