Search code examples
angularjsangular-strap

angular-strap: input tag in modal and aside


I use an input tag in angular-strap modal:

<div class="modal-body" >
    <input type="text" placeholder="url" class="w-full" >
</div>

Then I type some words in it and close the modal with hide(). But next time I open the modal, I find that what I typed last time has gone. Am I doing something wrong?


Solution

  • I made a working plunkr here: plunkr. Take note of making kmlUrl an object key instead of a straight var: AngularStrap bs-select not updating ng-model

    The modal and page are now in sync with each other. The modal loads whatever is in $scope.model.kmlUrl and the page updates whenever you change it in the modal.

    <div ng-controller="TestModal">
      <button type="button" ng-click="openTestModal()">
        Open Modal
      </button>
      <div ng-cloak="">
        {{ model.kmlUrl }}
      </div>
    </div>
    <script type="text/ng-template" id="test-modal.html">
      <input type="text" placeholder="url" ng-model="model.kmlUrl">
      <div class="modal-footer">
        <button type="button" ng-click="closeTestModal()">Close</button>
      </div>
    </script>
    
    (function(){
      angular.module('test', ['mgcrea.ngStrap']);
    
      angular.module('test').controller('TestModal', function($scope, $modal){
        var modal = $modal({
          scope: $scope,
          title: 'Test Modal',
          contentTemplate: 'test-modal.html',
          show: false
         });
    
        $scope.model = {
          kmlUrl: 'https://www.amazon.com'
        };
    
        $scope.openTestModal = function(){
         modal.show();
        };
    
        $scope.closeTestModal = function(){
          modal.hide();
        };
    
      });
    })();