Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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 为什么AngularJS向服务器生成的输出添加额外的类?_Javascript_Angularjs_Node.js_Express_Pug - Fatal编程技术网

Javascript 为什么AngularJS向服务器生成的输出添加额外的类?

Javascript 为什么AngularJS向服务器生成的输出添加额外的类?,javascript,angularjs,node.js,express,pug,Javascript,Angularjs,Node.js,Express,Pug,我正在生成(通过Jade+Express.js+Node.js)一个HTML页面,其中我正在设置输入[text]元素的值。但是,即使该值设置正确(通过查看源代码验证;FF中的Ctrl+U),界面仍会显示一个空白文本框,检查FF中的元素会显示添加到该input[text]元素的额外AngularJS类 Jade模板中的相应行: input(type="text", class="form-control", tabindex=1, id="episodeVal", ng-model="epName

我正在生成(通过Jade+Express.js+Node.js)一个HTML页面,其中我正在设置
输入[text]
元素的
值。但是,即使该值设置正确(通过查看源代码验证;FF中的Ctrl+U),界面仍会显示一个空白文本框,检查FF中的元素会显示添加到该
input[text]
元素的额外AngularJS类

Jade模板中的相应行:

input(type="text", class="form-control", tabindex=1, id="episodeVal", ng-model="epName", value="#{epName}")
Jade的输出,通过Node.js生成(与预期完全一致):


Firefox的“Inspect元素”显示的“Computed”(正确的单词?)输出(显示额外添加的AngularJS类):


为什么AngularJS要添加这些额外的类?我认为这是阻止浏览器显示为
输入[文本]
设置的
值的原因,对吗

如果需要任何额外的信息,请告诉我


更新1:刚刚注意到,封闭表单也有额外的
ng pristite
ng valid
应用于它),并且FF

没有额外的类不会影响行为

这些类用于描述表单的状态。请参阅上的文档,了解这些类的意义


至于您的问题,即使您设置了value属性,由于您使用的是
ng model=“epName”
,因此
$scope中的任何内容。epName
将在
输入上设置

您不需要在角度中设置值,输入将自动显示您的模型在JS中的值。因此,如果JS中的epModel等于“someValue”,则输入值将自动设置为该值


因此,与其设置输入值,不如在javascript中设置它(如果您还没有设置的话)

对我有效的最终解决方案是使用
ng init
初始化
epName
的值(Jade模板语法片段):

其中输出HTML(片段):

输入
标签上


感谢@Chandermani为我指明了正确的方向。

我没有将
$scope.epName
的值设置为任何值。如何让
输入[text]
显示?我无法在服务器上设置
$scope.epName
的值…由于ng模型用于支持双向绑定,因此需要使用要显示的值初始化
epName
。无法使用输入的value属性对其进行初始化。
<input type="text" tabindex="1" id="episodeVal" ng-model="epName" value="Arbit" class="form-control">
<input tabindex="1" id="episodeVal" ng-model="epName" value="Arbit" class="form-control ng-pristine ng-valid ng-touched" type="text">
ng-init="epName = \"#{epName}\";"
ng-init="epName = &quot;New One&quot;;"