Angularjs ngDisabled 比较表达式未正确评估

Posted

技术标签:

【中文标题】Angularjs ngDisabled 比较表达式未正确评估【英文标题】:Angularjs ngDisabled comparison expression not evaluating correctly 【发布时间】:2014-08-05 02:49:06 【问题描述】:

我试图根据两个文本字段的比较结果是真还是假,在 angularjs 应用程序中启用或禁用按钮。我在下面提供了示例代码,并在http://plnkr.co/edit/rzly8hy21048YGzsx2gW?p=previewhttp://plnkr.co/edit/rzly8hy21048YGzsx2gW?p=preview

正如您所看到的,当您输入一个字符串以匹配存储的字符串时,表达式的计算结果正确,但按钮永远不可用。

任何帮助将不胜感激。

这里是 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="angular.js@1.2.x" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.min.js" data-semver="1.2.16"></script>
    <script src="app.js"></script>
  </head>

  <body ng-controller="MainCtrl">
    <button ng-click="updateCounter()">Increment count</button>
    <input type="text" ng-model="inputfield">
    <input type="button" value="Continue" ng-disabled="inputfield !== startertext">
    <br>startertext: startertext
    <br>nputfield: inputfield
    <br>test: inputfield !== startertext

  </body>


</html>

javascript 文件在下面。

var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope) 
  $scope.startertext = 'hello world';
);

【问题讨论】:

【参考方案1】:

删除您的 ng-disabled 属性周围的卷曲。

【讨论】:

感觉自己像个白痴,已经修补了一段时间并实际添加了它们。工作完美无瑕!【参考方案2】:

这是它为您的 plunk 工作的方式:

<input type="button" value="Continue" ng-disabled="startertext != inputfield">

不要忘记删除控制器中多余的 curlie(当我在编辑器中打开它时,会出现错误标记)。

【讨论】:

以上是关于Angularjs ngDisabled 比较表达式未正确评估的主要内容,如果未能解决你的问题,请参考以下文章

AngularJS 表达式

AngularJS学习之旅—AngularJS 表达式

AngularJs学习第二章(AngularJs表达式)

AngularJS

AngularJS 学习笔记

AngularJs 表达式