В веб-приложении Foundation-for-Apps я хочу вызвать функцию в моем контроллере при изменении значения выбора.
В моем шаблоне я сделал следующее:
---
name: meeting-rooms
url: /meeting-rooms
controller: MeetingRoomsCtrl
animationIn: slideInRight
animationOut: slideOutLeft
---
<div class="custom-tabs" zf-tabs="">
<div class="custom-tabs-item" zf-tab="" title="Location" data-options="one_up: false">
<form class="form">
<select id="selectLocation" class="select form-place-select" ng-model="selectLocation" ng-change="selectLocationChanged()">
<option value="">Select a place</option>
<option value="New York">New York</option>
</select>
</form>
</div>
</div>
И мой контроллер:
(function() {
'use strict';
angular.module('application').controller('MeetingRoomsCtrl', ['$scope',
function($scope, $state, $window, foundation, ModalFactory, NotificationFactory) {
$scope.selectLocationChanged = function() {
console.log($scope.selectLocation.name);
};
}
]);
})();
Предполагается, что будет работать: ng-model
, функция selectLocationChanged
существует в области (я могу использовать другие переменные, установленные в контроллере в одном шаблоне), а синтаксис ng-model="selectLocation" ng-change="selectLocationChanged()"
является правильным. У меня нет сообщения об ошибке в консоли, событие изменения просто не запускается.
Есть ли причина, почему это не работает? Может быть, что-то конкретное с Foundation For Apps?
Измените свой код на это, забыли включить контроллер в HTML-страницу
<form class="form" ng-controller="MeetingRoomsCtrl">
<div >
<select id="selectLocation" class="select form-place-select" ng-model="selectLocation" ng-change="selectLocationChanged(selectLocation)">
<option value="" disabled="disabled">Select a place</option>
<option value="New York">New York</option>
</select>
</div>
</form>
selectLocation
должен быть доступен через область видимости, и даже если я сделаю простойconsole.log('test')
в функции, он просто не получит вызов.