如何在视图的某个状态上禁用输入.角

How to disable an input on a certain state in the view. Angular

本文关键字:输入 状态 视图      更新时间:2023-09-26

我有一个指令,我在应用程序的两个不同的地方使用,我需要在应用程序的一个状态下禁用指令模板中的输入,而不是在另一个状态下。

我试过:

<input type="number" ng-model="data" ng-disabled='$state.current.name == "findRates"'/>

运气不好。如果我将ng-disable更改为如下所示:

ng-disabled='checkState()'

控制器中的checkState功能:

$scope.checkState = function() {
  if ($state.current.name == 'findRates') {
    return true;
  }
};

这工作得很好,然而,我想在视图中这样做,而不需要在控制器中额外的位。我是不是错过了什么?我也试过使用$location,但运气不好,我宁愿使用$state,但我愿意接受任何建议。

因为你的控制器将$state作为依赖项,但视图只暴露于$scope变量,所以在其上添加变量,如

$scope.shouldDisable = $state.current.name == 'findRates'

,然后在视图

上使用shouldDisable
<input type="number" ng-model="data" ng-disabled="shouldDisable"/>