Javascript ng更改不适用于ng选择
我正在使用一个由Javascript ng更改不适用于ng选择,javascript,angularjs,Javascript,Angularjs,我正在使用一个由ng选项填充的选择框。不幸的是,我无法调用我的ng change函数 这是我的js: var myApp = angular.module('myApp',[]); function MyCtrl($scope) { $scope.typeOptions = [ { name: 'Feature', value: 'feature' }, { name: 'Bug', value: 'bug' }, { name: 'Enhanceme
ng选项填充的选择框
。不幸的是,我无法调用我的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>
{{scopeMessage}}
这是目前阻碍我在我的工作项目,所以任何帮助将非常感谢。谢谢 您的问题是将函数引用传递给ng change指令。但是,该指令需要一个可以计算的表达式。因此,将括号附加到函数,以便可以将其作为函数调用进行计算 就像这里:
2件事。。。两者都很简单:)
ng change=onSelectChange
应该是onSelectChange()
this.message
应该是this.scopeMessage
这确实应该是公认的答案。测试JSFIDLE的user45763显示,文本框不会变为“检测到更改”,这是出于Timothy的回答中的原因#2。@MichaelMahony问题是“……我无法调用我的ng change函数。”。我是第一个回答错误的人,这就是为什么我的答案被接受是有意义的。@user45763我理解你的意思,但当你阅读他的代码时,他希望更改也更改文本框。对我来说,一个完整的答案可以帮助你找到解决方案。蒂蒙蒂就是这样做到的。你的回答很有帮助,只是(以我的拙见)不完整。很抱歉,我整整一年都没有回顾这篇文章。是的@MichaelMahony你是对的。是时候解决问题了。呜呜!我得到了公认的答案!谢谢@webwalker:)
<select ng-model='form' required ng-options='option.value as option.name for option in typeOptions' ng-change="onSelectChange()"></select>