0

在 Foundation-for-Apps 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()"正确。我在控制台中没有任何错误消息,只是没有触发更改事件。

有什么理由不工作吗?也许是 Foundation For Apps 的特定内容?

4

1 回答 1

0

将您的代码更改为此,忘记在 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>
于 2016-04-22T09:58:28.600 回答