모난 스트랩 모달에 angularStrap 선행 표시가 있는데, 모달이 작성된 이후에 모달이 열리거나 닫힌 것처럼 변경 이벤트가 반복되는 것을 제외하고는 선행 검사가 올바르게 작동합니다 .모달 트리거가 각각 여러 번 변경되는 모달 트리거
모달이 표시 될 때마다 청취자가 추가 된 것처럼 보이지만이 문제를 해결할 방법을 찾을 수 없습니다. 버그는 아니지만 제 편이 오용 된 것 같습니다.
는 예를 들어, 모달가 열려있는 경우는 ...
typehead에서 4 번째로 개방하고 입력 각 입력 문자의 getParentItem 핸들러에 4 전화 (여기 아래 참조) 트리거됩니다, 3 회 폐쇄- getParentItem =이 내 첫 번째 질문이지만 크롬 콘솔 (숫자가 동일 로그의 수를 시각적으로 파란색 원으로 제시 행에) 이런 식으로 뭔가를 제공하기 때문에
아직 이미지를 게시 할 수 없습니다 > 정의되지 않음
- getParentItem => I
- getParentItem => 그
- getParentItem => ITE
- 2 getParentItem => 미정
- 2 getParentItem => I
- 2 getParentItem => 그
- 2 getParentItem => ITE
- getParentItem 3 => 미정
- getParentItem 3 => 제가
- getParentItem 3 => 그,778,853,210
- 3 getParentItem => ITE
- 4 getParentItem => 미정
- 4 getParentItem =>
- 4 getParentItem => 그
- 4 getParentItem =>
ITE 봉투 I :
- AngularJS v1.3.0-build.3029 + sha.7df7d1a 하지에 확실하게 나는 그런 식으로 처리 모달을 변경 한 module.js에서 을 : -AngularStrap의 @version의 V2.0.5 2014년 8월 7일
코드는 다음과 같습니다 매번 모달을 다시 만들고 여러 인스턴스가 있어야합니다. 문제는 어느 쪽이든 마찬가지입니다.
...
/**
* Edit item creating modal if required
*/
$scope.editItem = function(event) {
if ('undefined' === typeof this.modalEdit) {
this.modalEdit = $modal({
scope: this,
animation: 'am-fade-and-scale',
title: 'Insert/Edit Item',
template: 'partials/item.html',
show: false
});
}
this.showModalEdit();
};
/*
* Show edition modal
*/
$scope.showModalEdit = function() {
this.modalEdit.$promise.then(this.modalEdit.show);
};
/*
* Hide edition modal
*/
$scope.hideModalEdit = function() {
if ('undefined' !== typeof $scope.modalEdit) {
$scope.modalEdit.hide();
}
};
/*
* Propose parent items according val
*/
$scope.getParentItem = function(val) {
console.info('getParentItem => ' + val);
if ('undefined' !== typeof val && 2 < val.length) {
$http.get('/api/items/' + val, {})
.success(function(data, status, headers, config) {
console.log('success');
})
.error(function(data, status, headers, config) {
console.log('error');
});
}
};
...
그리고 모달 템플릿 항목에
.HTML<div class="modal" tabindex="-1" role="dialog">
<div class="modal-dialog">
<form method="post" ng-submit="upsert()" ng-controller="ItemCtrl">
<div class="modal-content">
<div class="modal-header">
<h3 class="modal-title" ng-bind="title"></h3>
</div>
<div class="modal-body">
...
<div class="form-group">
<h5>Parent Item</h5>
<input class="form-control input-sm" type="text" ng-model="item.parent" name="parent" data-animation="am-flip-x" data-limit="25" ng-options="item.uid as item.label for parent in getParentItem($viewValue)" placeholder="Select a parent item" bs-typeahead required autofocus>
</div>
...
</div>
<div class="modal-footer">
<button type="button" class="btn btn-sm" ng-click="$hide()">Cancel</button>
<button type="submit" class="btn btn-primary btn-sm">Validate</button>
</div>
</div>
</form>
</div>
</div>
이미이 reusing modal fires multiple times 제외하고는 있지만 후속으로 어디서나에 대한 내 코드를 여러 번 리팩토링이 문제에 많은 시간을 보냈다 아무것도 발견 한 이후 어떤 생각이 ...
환영합니다