Angularjs:select 列表的 ng-change

Angularjs: ng-change for select list

我正在使用 angularjs,我有一个显示问题列表的指令。我打算在 selectedQuestion 变化时做一些逻辑。所以,我用了 ng-change.

这是我的指令:

 restrict: 'EA',
            scope: {                             
                selectedQuestion: '=?', 
                questionsList: '='  
            },
            link: function (scope) {
                scope.change = function () {
                    if (scope.selectedQuestion) {
                        //do something
                    }
                };
            }

这是我的指令的 html 模板:

   <select  ng-model="selectedQuestion"
            ng-options="avail.question for avail in questionsList track by avail.id" ng-change="change()"
   </select>

  {{selectedQuestion}}

当我更改 UI 列表中的问题时,{{selectedQuestion}} 会更改以显示所选问题的 json。但是 scope.change 函数中的 scope.selectedQuestion 始终与初始化相同(不变)。

导致此问题的原因是什么?

尝试将模型作为参数传递给 ng-change 函数:

<select ng-model="selectedQuestion"
        ng-options="avail.question for avail in questionsList track by avail.id" 
        ng-change="change(selectedQuestion)"
</select>

然后在你的指令中:

link: function (scope) {
        scope.change = function (currentQuestion) {
            if (currentQuestion) {
            }
        };
     }