我正在使用由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>
这是我目前的工作项目,所以任何帮助都会得到很好的赞赏。谢谢!
答案 0 :(得分:16)
2件事......都很简单:)
ng-change=onSelectChange
应为onSelectChange()
this.message
应为this.scopeMessage
答案 1 :(得分:6)
您的问题是您将函数引用传递给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>