【发布时间】:2016-04-10 02:05:17
【问题描述】:
我正在尝试使用 angularjs 制作一个简单的下拉列表,并希望在下拉列表值更改时调用一个函数。只有当下拉选择是“A”时,我才想在我的页面中显示一些其他元素(比如“你好”)。 这是 jsfiddle http://jsfiddle.net/gkJve/932/。
HTML
<div ng-controller="Ctrl">
<select id="sel" class="input-block-level" ng-model="list_category" ng-options="obj.name for obj in list_categories" ng-change="DropDownChange()">
<option value="">Select</option>
</select>
<div ng-show="showdiv">
Hello
</div>
<div>
角度
var app = angular.module('app', []);
$scope.showdiv=false;
function Ctrl($scope) {
$scope.list_categories = [{
id: 'id1',
name: 'A'
}, {
id: 'id2',
name: 'B'
}];
$scope.DropDownChange = function() {
$scope.showdiv = angular.equals($scope.list_category.name,'A');
}
}
结果 - 选择“A”时显示“Hello”,选择“B”时隐藏。但问题是,如果我选择“A”,然后将选择更改为“选择”,仍然会显示“你好”。我认为这是因为“选择”不是我的模型数据值之一,所以比较失败了。有没有其他方法可以在不向我的模型数据中添加“选择”的情况下完成这项工作?
【问题讨论】:
-
@RohitArora - 你提到的问题不相关,因为它没有谈论 ng-change