请查找 plunker code
app.js
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
$scope.name = 'World';
$scope.levels = [{LevelId:0,LevelName: "Level 1"}, {LevelId:1,LevelName: "Level 2" }];
$scope.updateLevel = function() {
console.log("Fired on change");
$scope.result="Data Changed";
}
});
index.html
<!DOCTYPE html>
<html ng-app="plunker">
<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<script>
document.write('<base href="' + document.location + '" />');
</script>
<link rel="stylesheet" href="style.css" />
<script data-require="<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="26474841534a4754084c5566170812085e" rel="noreferrer noopener nofollow">[email protected]</a>" src="https://code.angularjs.org/1.4.2/angular.js" data-semver="1.4.2"></script>
<script src="app.js"></script>
</head>
<body ng-controller="MainCtrl">
<label for="textbox3">Select Level</label>
<select id="LevelSelect" class="form-control" ng-Change="updateLevel()" ng-model="selectedLevel" ng-options="lvl as level.LevelName for level in levels"></select>
<p>{{result}}</p>
</body>
</html>
我提到了各种SO问题,例如on not calling the declared method和 onchange not working 。建议。
最佳答案
您使用ng-options
的方式是不正确的,因为渲染的选项值正在获取undefined:undefined
,所有选项检查下图,当您更改所选项目不会触发 ng-change 事件,因为所有值都相同。
所以将其更改为,
ng-options="level as level.LevelName for level in levels"
请引用这个 Angular DOC
关于Angularjs 1.4 on-change 未使用 Select 触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31310382/