在基础应用程序 Web 应用程序上,我想在更改选择值时触发控制器中的函数。
我在模板中做了以下操作:
---
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()"
是正确的。我在控制台中没有任何错误消息,只是没有触发更改事件。
有什么理由为什么这不起作用吗?也许是应用程序基础的特定内容?
将您的代码更改为此,忘记在 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>