2013-03-10 2 views
-1

У меня есть форма, заполняемая информацией из таблицы. Когда у меня в записи есть роль или несколько ролей, она отображается как ожидалось, но я не могу добавить дополнительные роли, и я не могу добавить никаких роли в запись, если их не было. Что-то не так с моей функцией $ add().

Другая проблема заключается в том, что пароль и подтверждающий пароль отображают одни и те же данные. Я пытаюсь понять это прямо сейчас.

<form ng-model="current"> 
      <fieldset> 
       <legend> 
        <a href="" alt="Register" class="btn btn-mini btn-success" ng-click="newItem()"><i 
          class="icon-plus-sign icon-white"></i> New </a> 
        Detail 
       </legend> 
       <label>First Name</label> 
       <input type="text" placeholder="First Name" ng-model="current.firstName" value="current.firstName" 
         ng-disabled="isKey('lastName')"> 

       <label>Last Name</label> 
       <input type="text" placeholder="First Name" ng-model="current.lastName" value="current.lastName" 
         ng-disabled="isKey('firstName')"> 

       <label>Email</label> 
       <input type="text" placeholder="[email protected]" ng-model="current.email" value="current.email" 
         ng-disabled="isKey('email')"> 

       <label>Password</label> 
       <input type="password" placeholder="Password" ng-model="current.password" value="current.Pass" 
         ng-disabled="isKey('Pass')"> 

       <label>Confirm Password</label> 
       <input type="password" placeholder="Confirm Password" ng-model="current.password" value="current.Pass" 
         ng-disabled="isKey('Pass')"> 

       <label>Enabled</label> 
       <select ng-model="current.enabled" ng-disabled="isKey('enabled')"> 
        <option value=true>Enabled</option> 
        <option value=false>Disabled</option> 
       </select> 

       <div class="role" ng-repeat="role in current.roles"> 
        <label>User Roles</label> 
        <select ng-model="role.roleName" ng-disabled="isKey('role')"> 
         <option value="ROLE_USER">User</option> 
         <option value="ROLE_ADMIN">Administrator</option> 
        </select> 
       </div> 
       <label></label> 
       <a class="btn btn-primary" ng:click="current.role.$add()">Add Role</a> 
       <label></label> 
       <a href="#askCreateUser" alt="Register" role="button" class="btn btn-success" data-toggle="modal" 
        ng-click="setDataOperation('Update')"><i class="icon-edit icon-white"></i> Update </a> 
       <a href="#askCreateUser" alt="Register" role="button" class="btn btn-warning" data-toggle="modal" 
        ng-click="setDataOperation('Delete')"><i class="icon-trash icon-white"></i> Delete </a> 
      </fieldset> 

     </form> 
+0

Ваш пароль и подтверждающий пароль будут отображаться так же, как они используют одну и ту же 'ng-model'. Что касается вашей функции '$ add', вам действительно нужно предоставить пример plnkr или jsfiddle, чтобы другие могли вам помочь. –

+0

Вы должны прикрепить свой код контроллера, чтобы мы могли видеть, к чему привязана эта форма, и что вы 'current.role. Функция $ add' выглядит. Кроме того, вы не используете угловые модели (и форму) так, как они должны использоваться. Вы не должны использовать атрибут value, когда ваши входы подключены к модели с помощью директивы ng-model. Возможно, вам захочется узнать больше о [Директиве по угловой форме] (http://docs.angularjs.org/guide/forms) и [ng-model] (http://docs.angularjs.org/api/ng.directive: ngModel). – Stewie

ответ

0

Я обнаружил, что это было связано с попыткой нажать на пустой массив. После добавления функции ниже я смог добавлять элементы без проблем.

$scope.addRole = function() { 
     if ($scope.current.roles != undefined) { 
      $scope.current.roles.push({}); 
     } 
     else { 
      $scope.current.roles = new Array(); 
      $scope.current.roles.push({}); 
     } 
    }; 
Смежные вопросы