У меня есть модальная директива, которая должна стать видимой при нажатии кнопки. однако значение, отвечающее за определение того, должно ли быть открыто модальное окно, которое двусторонне связано с директивой, по-видимому, не обновляется. Любые идеи?
вот директива JS:
function modalDialogSelect() {
return {
restrict: 'AE',
scope: {
show: '='
},
replace: true,
transclude: true,
link: function(scope, element, attrs) {
scope.dialogStyle = {};
scope.hideModal = function() {
scope.show = false;
};
},
templateUrl: "./views/directive_templates/select_modal.html"
};
}
директива Внутренний URL-адрес HTML:
<div class='ng-modal' ng-show='show'>
<div class='ng-modal-overlay' ng-click='hideModal()'></div>
<div class='ng-modal-dialog' ng-style='dialogStyle'>
<p>Select New Customer</p>
</div>
</div>
</div>
кнопка, чтобы нажать и открыть модальное окно:
<button ng-click='selectCustomer = true;'>SELECT/CREATE CUSTOMER</button>
и директива modal-dialog-select в моем общем HTML
<modal-dialog-select show='selectCustomer'></modal-dialog-select>
есть идеи, почему scope.show не обновляется в моей директиве? Спасибо!
link: function(scope, element, attrs) {...}
в конфигурации вашей директивы на блокcontroller: function($scope) {...}
? Тот же код внутри, но с заменойscope
на$scope
. - person ggalmazor   schedule 30.06.2015scope, element, attributes, controller
. В контроллерах, определенных, как в примере OP (без использования формы массива, аннотаций или свойства$inject
), параметры передаются в соответствии с их именами с известными объектами в контейнере внедрения зависимостей Angular. В любом случае, я хотел использовать контроллер, а не функцию ссылки, чтобы избежать возможных проблем с преждевременной привязкой области видимости, которые могут возникнуть при странных обстоятельствах (особенно с модальными окнами) в моем опыте. - person ggalmazor   schedule 30.06.2015<modal-dialog-select show='someObj.selectCustomer'></modal-dialog-select>
- person ggalmazor   schedule 30.06.2015</div>
. Я подготовил codepen с вашим примером, и после этого изменения все работает. - person ggalmazor   schedule 30.06.2015