私は AngularJs にまったく慣れていません。
私はtwitterbootstrapを使用しています。モーダルとは、ブートストラップモーダルを意味します
スロットをクリックして保存すると、モーダルが1回表示されますが、1回目は動作しますが、2回目は、addingBookingメソッドを呼び出してcurrentBookingオブジェクトを初期化しますが、モーダルは表示しません。
これはhamlでの私の見解であり、ブートストラップモーダルとその正常な動作を簡単に示しています。
#scheduler{ :'ng-controller' => 'SchedulerCtrl', :scheduler => true, :data =>{:interval => @interval, :restaurant_id => @restaurant_id} }
#booking-editor.modal.hide.fade{ :'aria-hidden' => true, :'aria-labelledby' => "bookingEditorLabel", :role => "dialog", :tabindex => "-1", :'booking-editor' => 'currentBooking', :'ng-controller' => 'BookingEditorCtrl' }
.modal-body
%input{ :type => "text", :'ng-model' => "currentBooking.name" }
.modal-footer
%button.btn{ :'aria-hidden' => true, :'data-dismiss' => "modal" } Close
%button.btn.btn-primary{ :'ng-click' => 'saveBooking(currentBooking)' } Save Booking
スケジューラ コントローラ;
$scope.addBooking = (slot) ->
$scope.currentBooking = { name: "John Doe", new: true }
BookingEditorCntl
@BookingEditorCtrl = ['$scope', '$resource', ($scope, $resource) ->
$scope.saveBooking = (booking) ->
$scope.currentBooking = null
]
DOM操作のディレクティブ部分
.directive 'bookingEditor', ->
restrict: 'A'
link: (scope, element, attrs, ctrl) ->
scope.$watch attrs.bookingEditor, ->
if scope[attrs.bookingEditor]
$(element).modal(keyboard: true)
$(element).modal('show')
else
$(element).modal('hide')
提案や考えをお願いします。ありがとう。