Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Scope issue in AngularJS using AngularUI Bootstrap Modal

plunker: http://plnkr.co/edit/wURNg8ByPYbEuQSL4xwg

example.js:

angular.module('plunker', ['ui.bootstrap']);   var ModalDemoCtrl = function ($scope, $modal) {    $scope.open = function () {     var modalInstance = $modal.open({       templateUrl: 'modal.html',       controller: 'ModalInstanceCtrl'     });   }; };  var ModalInstanceCtrl = function ($scope, $modalInstance) {    $scope.ok = function () {     alert($scope.text);   };    $scope.cancel = function () {     $modalInstance.dismiss('cancel');   }; }; 

index.html:

<!doctype html> <html ng-app="plunker">   <head>     <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.js"></script>     <script src="http://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.6.0.js"></script>     <script src="example.js"></script>     <link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css" rel="stylesheet">   </head>   <body>    <div ng-controller="ModalDemoCtrl">     <button class="btn" ng-click="open()">Open me!</button>     <div ng-show="selected">Selection from a modal: {{ selected }}</div>   </div>  </body> </html> 

modal.html:

<div class="modal-header">     <h3>I'm a modal!</h3> </div> <textarea ng-model="text"></textarea> <div class="modal-footer">     <button class="btn btn-primary" ng-click="ok()">OK</button>     <button class="btn btn-warning" ng-click="cancel()">Cancel</button> </div> 

Why I can't get the $scope.text defined in ModalInstanceCtrl, even though I can use $scope.ok and $scope.cancel?

like image 957
Manuel Bitto Avatar asked Sep 10 '13 10:09

Manuel Bitto


1 Answers

Looks like a scope issue. I got it to work like this:

var ModalInstanceCtrl = function ($scope, $modalInstance) {     $scope.input = {};     $scope.ok = function () {         alert($scope.input.abc);     };      $scope.cancel = function () {         $modalInstance.dismiss('cancel');     }; }; 

HTML:

<textarea ng-model="input.abc"></textarea> 
like image 58
AlwaysALearner Avatar answered Sep 24 '22 20:09

AlwaysALearner