Angularjs двусторонняя привязка данных - ngChange - PullRequest
0 голосов
/ 06 июня 2018

Я работаю над проектом, в котором есть веб-форма, использующая html и angularjs, а бэкэнд - java / spring и db oracle.

Моя форма содержит несколько списков, скажем, list1, list2 ... list1 получить егопредметы из дб.Как только пользователь выбирает элемент в list1, ng-change получает триггер и данные для list2 geenrates. Это означает, что значения list2 зависят от директивы list1 ng-change. После заполнения всех необходимых полей я сохраняю форму в дБ.

Теперь я даю пользователю условие, что они могут видеть заполненные детали.Поэтому, как только они нажмут «изменить», они смогут увидеть все свои детали.Я использую ng-модель для привязки данных. Все поля работают, и значения привязки формируются из db к веб-форме html, за исключением list2.Может кто-нибудь показать, как мы можем достичь этого.

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

<div ng-app="myApp" ng-controller="myCtrl">
<label>List1:</label>
<select ng-model="selectedName" ng-change="getList()" ng-options="item for item in names">
</select>
<br>
<label>List2:</label>
<select ng-model="selectedNcomany" ng-options="item for item in comany">
</select>
<button ng-click="editText()">
Edit
</button>
</div>

<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
    $scope.names = ["Emil", "Tobias", "Linus"];
    var db = {};
    $scope.getList = function(){

   if($scope.selectedName == "Linus"){
   $scope.comany = ["!","2"];

   }
   else{
     $scope.comany =["0"]
   }
    }
     $scope.editText = function(){
        $scope.selectedName = "Linus";
        $scope.selectedNcomany = "1";
     }
});
</script>

https://jsfiddle.net/31d8cv92/12/

1 Ответ

0 голосов
/ 06 июня 2018

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

angular.module('test').service('showField',showField);

function showField(){
  
  this.showfield = function(fieldData,pagemode){
    if(angular.isDefined(fieldData) && fieldData.hasOwnProperty('hide')){
      if (fieldData.hide) {
        if (fieldData.npi) {
          if (pagemode == 'view') {
            return false;
          }else {
          return true;
          }
        } else {
          return false;
        }
      } else {
        return true;
      }
      }
  }  
}
Мы вызываем это в наших необходимых контроллерах для режима просмотра и обновления.** (новичок в AngularJS)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...