如何禁用视图中某个状态的输入。角

时间:2015-07-15 18:52:47

标签: javascript html angularjs angular-ui-router

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

我试过了:

<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但是我愿意接受任何建议。谢谢你。

1 个答案:

答案 0 :(得分:1)

因为你的控制器将$state作为依赖项,但是视图只接触$scope个变量,所以把变量放在它上面就像

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

然后在视图

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