2014-01-18 34 views
0

我有下面的AngularJS打開一個對話框,我輸入2個輸入字段並按ok()將輸入的值寫入我的$scopeAngularJS對象保持覆蓋並且不會被推動

這個工作,但是當我再次打開該模式,進入更多的細節到輸入欄,然後單擊ok()我想這在我$scope添加到當前input對象,而是它只是過度寫它。

var theApp = angular.module('theApp', []); 
var app = angular.module('theApp', ['ui.bootstrap']); 



app.controller('MenuSideController', ['$scope','$modal','$log', function($scope, $modal, $log) { 
    var ModalInstanceCtrl; 

    $scope.createmarker = function() { 
     var modalInstance = $modal.open({ 
      templateUrl: 'template/modal-add-marker.html', 
      controller: ModalInstanceCtrl, 
      resolve: {}, 
      scope: $scope.$new() 
     }); 
     modalInstance.result.then(function (selectedItem) { 
     }, function() { 
      $log.info('Modal dismissed at: ' + new Date()); 
     }); 
    }; 
    ModalInstanceCtrl = function ($scope, $modalInstance) { 
     $scope.input = []; 
     $scope.ok = function() { 
      $modalInstance.close($scope.input); 
      console.log($scope); 
      $scope.gps = ""; 
      $scope.title = ""; 
     }; 

     $scope.cancel = function() { 
      $modalInstance.dismiss('cancel'); 
     }; 
    }; 


    $scope.plotmarkers = function($scope) { 
     console.log($scope); 
    }; 
}]); 

Angular Scope

看看我在Plunker

+0

請顯示什麼是我的$ scope中的'當前輸入對象?或更好的小提示/ Plunker後代碼示例 –

+0

http://plnkr.co/edit/oYqDTtu4CaG5Htkj0jut?p=preview – ngplayground

回答

1

我想補充/更改modalInstance

modalInstance.result.then(function (selectedItem) { 
    $scope.keys.push({title: selectedItem.titley, gps:selectedItem.gps, desc:selectedItem.desc}); 
    } 

演示Plunker

0

代碼你只是使用參考地址的值,如果你使用angular.copy(你的對象),它會創建一個新的實例當你重新打開模式時不會被覆蓋。

0

我不知道我理解你的問題,但我認爲你想要做的是將模態推送選擇放入父控制器中的數組中?如果是這樣,你只需要你的modalInstance.result.then功能更改爲類似這樣

var ModalDemoCtrl = function ($scope, $modal, $log) { 

    $scope.items = ['item1', 'item2', 'item3']; 
    $scope.selected = {}; 
    $scope.selected.items = []; 

    $scope.open = function() { 

    var modalInstance = $modal.open({ 
     templateUrl: 'myModalContent.html', 
     controller: ModalInstanceCtrl, 
     resolve: { 
     items: function() { 
      return $scope.items; 
     } 
     } 
    }); 

    modalInstance.result.then(function (selectedItem) { 
     $scope.selected.items.push(selectedItem); 
    }, function() { 
     $log.info('Modal dismissed at: ' + new Date()); 
    }); 
    }; 
}; 

對於一個完整的工作示例,在這裏看到:http://plnkr.co/edit/IA8qTX29DDIS1jXqx3gw?p=preview

+0

這就是我所追求的,但我希望有輸入框推到$範圍 – ngplayground