Javascript 如何使用AngularJS基于下拉选择值禁用输入文本框?
我有以下针对AngularJS的JavaScriptJavascript 如何使用AngularJS基于下拉选择值禁用输入文本框?,javascript,angularjs,kendo-ui,Javascript,Angularjs,Kendo Ui,我有以下针对AngularJS的JavaScript $("#listOptionFruit").kendoDropDownList({ autoBind: true, filter: 'contains', dataSource: $scope.listOptionFruitList, select: $scope.listOptionFruitSelect }); $scope.listOptionFruitSelect = function (e) {
$("#listOptionFruit").kendoDropDownList({
autoBind: true,
filter: 'contains',
dataSource: $scope.listOptionFruitList,
select: $scope.listOptionFruitSelect
});
$scope.listOptionFruitSelect = function (e)
{
$scope.listOptionFruit = e.dataItem;
if ($scope.listOptionFruit === 'Strawberry') {
$scope.enableMe = true;
}
else
{
$scope.enableMe = false;
}
}
cshtml方面如下所示:
<label for="listOptionFruit">Fruits</label>
<input id="listOptionFruit" name="listOptionFruit" required />
<label for="myValue">MyValue</label>
<input type="text" id="myValue" ng-disabled="enableMe" />
水果
我的价值
因此,该值对于enablem是正确的,但是文本框似乎没有被禁用,或者操作似乎没有生效
因此,如果用户从列表中选择草莓,则文本框将被禁用,否则它将被启用,因为事件发生在AngularJS框架之外,它需要与
$apply
绑定:
$("#listOptionFruit").kendoDropDownList({
autoBind: true,
filter: 'contains',
dataSource: $scope.listOptionFruitList,
select: function (ev) {
$scope.$apply(function() {
$scope.listOptionFruitSelect(ev);
});
}
});
AngularJS通过提供自己的事件处理循环来修改正常的JavaScript流。这将JavaScript分为经典和AngularJS执行上下文。只有在AngularJS执行上下文中应用的操作才会受益于AngularJS数据绑定、异常处理、属性监视等
有关详细信息,请参阅