次のコード スニペットは、$modal.open() に使用されるコントローラーです。ok 関数が、データ バインディングによって変更された最新のデータを取得できない理由がわかりません。
myModule.controller('ModalCtrl', function($scope, $modalInstance) {
$scope.job = 'student'; // changed by html radio button, default is 'student'
// called by a button with ng-click="ok()" in modal view
$scope.ok = function() {
// no matter what job i changed, the $scope.job always is default value 'student'
$modalInstance.close({
selected_job : $scope.job
});
};
});
これがhtmlスニペットです
<script type="text/ng-template" id="sendToModal.html">
<div>
<div class="modal-header">
<h4>Job</h4>
</div>
<div class="modal-body">
<label class="radio-inline">
<input type="radio" name="jobOption"
data-ng-model="job"
data-ng-value="student">Student
</label>
<label class="radio-inline">
<input type="radio" name="jobOption"
data-ng-model="job"
data-ng-value="teachch">Teacher
</label>
<div class="modal-footer">
<button class="btn btn-primary" data-ng-click="ok()">Confirm</button>
<button class="btn btn-warning" data-ng-click="cancel()">Cancel</button>
</div>
</div>
</script>