Ng-change对ng-select不起作用

ng-change not working on ng-select

本文关键字:不起作用 ng-select Ng-change      更新时间:2023-09-26

我使用的是由ng-options填充的选择框。不幸的是,我不能让我的ng-change函数调用。

这是我的小提琴

这是我的js:

var myApp = angular.module('myApp',[]);

function MyCtrl($scope) {
    $scope.typeOptions = [
    { name: 'Feature', value: 'feature' }, 
    { name: 'Bug', value: 'bug' }, 
    { name: 'Enhancement', value: 'enhancement' }
    ];
    $scope.scopeMessage = "default text";
    var changeCount = 0;
    $scope.onSelectChange = function()
    {
       changeCount++;
        this.message = "Change detected: " + changeCount;
    }.bind($scope);
    //$scope.form = {type : $scope.typeOptions[0].value};
    $scope.form = $scope.typeOptions[0].value;
}

这是我的HTML:

<div ng-controller="MyCtrl" class="row">
    <select ng-model='form' required ng-options='option.value as option.name for option in typeOptions' ng-change="onSelectChange"></select>
    <div style="border:1px solid black; width: 100px; height:20px;">{{scopeMessage}}<div>
</div>

这是目前我在我的项目工作,所以任何帮助将非常感激。谢谢!

2…都很简单:)

  1. ng-change=onSelectChange应该是onSelectChange()
  2. this.message应该是this.scopeMessage

您的问题是您正在传递ng-change指令的函数引用。然而,该指令需要一个可以求值的表达式。因此,将圆括号附加到函数上,以便可以将其作为函数调用进行计算。

例如:http://jsfiddle.net/MTfRD/1101/

<select ng-model='form' required ng-options='option.value as option.name for option in typeOptions' ng-change="onSelectChange()"></select>