사용자에게 입력을 요구하는 모달 윈도우를 구현하려고합니다. 이전 앱에서 거의 동일한 코드를 사용했는데 작동했습니다. 이제
.controller('addStreamModal', [
'$scope', '$modal', '$log', '$http', '$rootScope'
($scope, $modal, $log, $http, $rootScope) ->
$scope.open = ->
modalInstance = $modal.open(
templateUrl: "addStream.html"
controller: 'addStreamModalInstance'
resolve:
public_key: ->
"placeholder"
)
modalInstance.result.then ((result) ->
return
), ->
$log.info "Modal dismissed at: " + new Date()
return
return
return
])
모달 인스턴스 컨트롤러 : 'T는 여기
이 (커피 스크립트에서) 모달를 여는 컨트롤러입니다 ... 여기에 무슨 일이 일어나고 있는지 알고.controller('addStreamModalInstance', [
'$scope', '$modalInstance', '$http', 'public_key'
($scope, $modalInstance, $http, public_key) ->
console.log(public_key)
$scope.public_key = public_key
$scope.ok = ->
console.log($scope.public_key)
$modalInstance.close $scope
return
$scope.cancel = ->
$modalInstance.dismiss "cancel"
return
return
])
그리고 HTML :
<div class="modal-header">
<h4>Please enter the private key for verification {{public_key}}</h4>
</div>
<div class="modal-body">
<div class="form-group">
<input type="text" class="form-control" id="exampleInputEmail1" ng-model="public_key">
</div>
</div>
<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>
버튼을 클릭하고 텍스트 상자에 "자리 표시 자"가있는 모달이 열리면이 테스트가 모달 제목에 바인딩 된 것을 볼 수 있습니다. 상자에 텍스트를 끝내면 제목이 바인딩으로 인해 예상대로 업데이트되지만 확인을 클릭하면 $ scope.public_key가 "자리 표시 자"로 되돌아갑니다. 이유를 알아 내려고하는 중입니다.
범위가 public_key로 되돌아갑니다. addStreamModal 또는 addStreamModalInstance? – pherris
Hum, 모달 콜백 결과를 상위 컨트롤러 "addStreamModal"의 범위 변수에 할당 할 필요가 없습니까? cs의 한 줄을 쓰지는 않겠지 만, "결과"가 이상하게 보인다고해서 아무 것도하지 않을 것입니다. 내가 틀렸다면 나를 가르쳐주세요. – marko