猿问
下载APP

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默认值,但似乎也不起作用。


喵喵时光机
浏览 87回答 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'; }

米脂

Vojta描述了“Angular方式”,但如果你真的需要做这项工作,@ newanek最近发布了一个使用ng-init的解决方法:<input&nbsp;type="text"&nbsp;ng-model="rootFolders"&nbsp;ng-init="rootFolders='Bob'"&nbsp;value="Bob">https://groups.google.com/d/msg/angular/Hn3eztNHFXw/wk3HyOl9fhcJ

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,查看更多内容
随时随地看视频慕课网APP
我要回答