猿问

AngularJS - 使用ng模型时,忽略输入文本框的Value属性?

AngularJS - 使用ng模型时,忽略输入文本框的Value属性?

如果我将一个简单的输入文本框值设置为下面的“bob”,请使用AngularJS。如果ng-model添加了属性,则不显示该值。

    <input type="text"
           id="rootFolder"
           ng-model="rootFolders"
           disabled="disabled"
           value="Bob"
           size="40"/>

任何人都知道一个简单的工作来默认这个输入的东西,并保持ng-model?我尝试使用ng-bind默认值,但似乎也不起作用。


喵喵时光机
浏览 641回答 3
3回答

PIPIONE

这是期望的行为,您应该在控制器中定义模型,而不是在视图中定义。<div&nbsp;ng-controller="Main"> &nbsp;&nbsp;<input&nbsp;type="text"&nbsp;ng-model="rootFolders"></div>function&nbsp;Main($scope)&nbsp;{ &nbsp;&nbsp;$scope.rootFolders&nbsp;=&nbsp;'bob'; }

qq_笑_17

覆盖输入指令确实可以完成这项工作。我对Dan Hunsaker的代码做了一些小改动:在尝试使用$parse().assign()没有ngModel属性的字段之前添加了对ngModel的检查。更正了assign()函数参数顺序。app.directive('input',&nbsp;function&nbsp;($parse)&nbsp;{ &nbsp;&nbsp;return&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;restrict:&nbsp;'E', &nbsp;&nbsp;&nbsp;&nbsp;require:&nbsp;'?ngModel', &nbsp;&nbsp;&nbsp;&nbsp;link:&nbsp;function&nbsp;(scope,&nbsp;element,&nbsp;attrs)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(attrs.ngModel&nbsp;&&&nbsp;attrs.value)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$parse(attrs.ngModel).assign(scope,&nbsp;attrs.value); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;};});
随时随地看视频慕课网APP
我要回答