Угловая ng-модель становится пустой строкой после присвоения входному полю значения и удаления его снова

поле ввода:

<input  type="text" data-ng-model="some_model" />

Начальное состояние some_model-null. Когда я добавляю некоторое произвольное значение в поле ввода и удаляю его снова, some_model становится пустой строкой.

Что я могу сделать, чтобы решить это что-то вроде:

if($scope.some_model != null && $scope.some_model != undefined && $scope.some_model.trim() == 0){
      $scope.some_model=null;
  }

Это работает, но мне интересно, есть ли стандартный угловой способ сделать это?

1 ответ

  1. Я создал эту ручку для работы, кажется, получает ожидаемое значение null. Будет обновляться по мере необходимости. Не стесняйтесь вилять и подключать некоторые из ваших кодов.

    angular
      .module('app', [])
      .controller('ExampleController', ExampleController)
      .factory('exampleService', exampleService);
    ExampleController.$inject = ['$timeout'];
    
    function ExampleController($timeout) {
      var vm = this;
      vm.text = null;
      activate();
    
      function activate() {
        $timeout(function() {
          if (vm.text != null && vm.text != undefined && vm.text.trim() == 0) {
            vm.text = null;
          }
          console.log(vm.text);
    
        }, 10);
      }
    }
    
    function exampleService() {
      var service = {
        //basic CRUD operations.
        post: post,
        get: get,
        update: update,
        remove: remove
      };
      return service;
    
      function post() {}
    
      function get() {}
    
      function update() {}
    
      function remove() {}
    
    }
    
    <body ng-app="app">
      <div class="container-fluid" ng-controller="ExampleController as vm">
        <input type="text" ng-model="vm.text" />
      </div>
    </body>