Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 吴秀表情。。。如何调试它_Javascript_Angularjs_Debugging - Fatal编程技术网

Javascript 吴秀表情。。。如何调试它

Javascript 吴秀表情。。。如何调试它,javascript,angularjs,debugging,Javascript,Angularjs,Debugging,我有以下代码 <span ng-show="form.email.$error.unique">Email already exists</span> 它说未定义 我会打字 form.email 它告诉我 ​<input name=​"email" ng-model=​"model.email" required class=​"ng-dirty ng-invalid ng-invalid-unique"> ​ 所以问题是为什么我不能在chrome控

我有以下代码

<span ng-show="form.email.$error.unique">Email already exists</span>
它说未定义

我会打字

form.email 
它告诉我

​<input name=​"email" ng-model=​"model.email" required class=​"ng-dirty ng-invalid ng-invalid-unique">
所以问题是为什么我不能在chrome控制台中看到$error?该值肯定存在,因为angular正在读取该值,并根据该值决定是否显示跨度

编辑::进一步阅读文档后,我觉得检查电子邮件是否有效的指令。。。设置控制器对象的有效性(第四个参数$setValidity)

但不知何故,UI从UI元素中读取$error

所以,对于什么是实际的工作流程,这是非常令人困惑的。。。设置$error的位置和读取它的位置


有人能澄清这一点吗?

与其在控制台中进行调试,不如使用一种有用的技术,只在视图中输出变量:{form.email.$error.unique}。将其放在输入元素的上方或下方,并在键入时观察值的动态变化。

下载Chrome的AngularJS Batarang插件。启用后,您可以检查任何元素,并且在控制台中,
$scope
将是所选元素的范围。
然后,您可以检查您提到的
span
,并在控制台中键入
$scope.form.email.$error.unique
,您将获得它的当前值。


或者如果您不想安装该插件(我更愿意安装它),您可以通过javascript获取当前作用域,如
angular.element(document.getElementById(…).scope()
,然后检查该作用域
(当然,您可以通过其他方式获取元素,然后按照
document.getElementById(…)

我不确定如何使用控制台,我只会将该变量输出到跨度上方的浏览器。当您在控制台中键入form.email时,它会显示来自DOM的元素,该元素没有$error属性。Angular创建FormController并将其附加到范围。表单控制器定义了$error属性。是的,我可以这样做。。。但是我仍然想知道如何从控制台访问值。还有。。我根本不清楚的是。。。指令正在控制器对象上设置$setValidity。ng show正在从.elem.$error表单读取它。所以我不明白的是这两个是如何连接的。这可能可以从broswer控制台(使用jQuery)访问form.email.$error.unique:$('form[name=“formName”]').scope().form.email.$error.unique;查看此页面:没有此页面,就不可能访问角度函数(指令、服务、工厂、控制器)中定义的变量
​<input name=​"email" ng-model=​"model.email" required class=​"ng-dirty ng-invalid ng-invalid-unique">