Javascript AngularJS可以';设置值文本区域
我试图为表单中的某些元素设置默认值,虽然它适用于所有输入字段,但它似乎不适用于textarea,而代码几乎相同 表格的HTML格式:Javascript AngularJS可以';设置值文本区域,javascript,html,angularjs,textarea,Javascript,Html,Angularjs,Textarea,我试图为表单中的某些元素设置默认值,虽然它适用于所有输入字段,但它似乎不适用于textarea,而代码几乎相同 表格的HTML格式: <form class="form-horizontal" id="infoForm" name="form" ng-submit="ctrl.submitInfoForm(form)" novalidate> <div class="form-group"> <label for="inputEditName
<form class="form-horizontal" id="infoForm" name="form" ng-submit="ctrl.submitInfoForm(form)" novalidate>
<div class="form-group">
<label for="inputEditName">Name</label>
<input type="text" class="form-control" value="{{ctrl.viewedName}}" id="inputEditName" ng-model="viewUser.name">
</div>
<div class="form-group">
<label for="inputEditLocation">Location</label>
<input type="text" class="form-control" value="{{ctrl.viewedLocation}}" id="inputEditLocation" ng-model="viewUser.location">
</div>
<div class="form-group">
<label for="inputEditWebsite">Website</label>
<input type="text" class="form-control" value="{{ctrl.viewedWebsite}}" id="inputEditWebsite" ng-model="viewUser.website">
</div>
<div class="form-group">
<label for="inputEditBio">Bio</label>
<textarea rows="3" class="form-control" id="inputEditBio" ng-model="viewUser.bio" >{{ctrl.viewedBio}}</textarea>
</div>
<button type="submit" class="btn btn-default">Save Changes</button>
</form>
默认情况下,仅设置名称,因此此时看起来如下所示:
姓名:我的名字
地点:-
网站:-
Bio:来自:
ngModel将尝试绑定到通过在当前作用域上计算表达式而给出的属性。如果该属性在此范围中不存在,则将隐式创建该属性并将其添加到范围中
因此,在您的例子中,angular试图将Textarea绑定到viewUser.bio
属性。由于它不存在,它将使用空值创建它,然后“覆盖”您在html中给出的ctrl.viewedBio
解决问题的简单方法:
在控制器中(在Init函数或类似的东西中)
我发现我做错了什么 首先,我有一个ngModel和一个控制器的字段连接到textarea(以及其他输入),所以我删除了这个字段,现在我只使用ngModel 其次,我忘了按ctrl键。在我的模型属性中。我通过简单地添加ctrl键来改变这一点。到我的模型属性 所以我改变了这一切,它现在起作用了,它看起来是这样的: HTML:
虽然的回答和评论有所帮助,我觉得这些并没有完全回答我的问题,这就是我添加这个答案的原因。为什么要使用value和ng model两个ng model都会自动绑定value remove value属性,从所有元素中删除value属性,对于text area,只需在controller中保持它与text area的ng model不匹配,并且没有
ctrl
前缀任何一个创建一个显示问题的演示
var vm = this;
vm.getViewedName = getViewedName;
vm.getViewedLocation = getViewedLocation;
vm.getViewedWebsite = getViewedWebsite;
vm.getViewedBio = getViewedBio;
vm.viewedName = getViewedName();
vm.viewedLocation = getViewedLocation();
vm.viewedWebsite = getViewedWebsite();
vm.viewedBio = getViewedBio();
function getViewedName() {
if (vm.viewedName === undefined) {
var viewedName;
var viewedUser = UserService2.getViewedUser();
viewedName = viewedUser.name;
if (viewedName === "") {
viewedName = "-";
}
return viewedName;
} else {
return vm.viewedName;
}
}
function getViewedLocation() {
if (vm.viewedLocation === undefined) {
var viewedLocation;
var viewedUser = UserService2.getViewedUser();
viewedLocation = viewedUser.location;
if (viewedLocation === "") {
viewedLocation = "-";
}
return viewedLocation;
} else {
return vm.viewedLocation;
}
}
function getViewedWebsite() {
if (vm.viewedWebsite === undefined) {
var viewedWebsite;
var viewedUser = UserService2.getViewedUser();
viewedWebsite = viewedUser.website;
if (viewedWebsite === "") {
viewedWebsite = "-";
}
return viewedWebsite;
} else {
return vm.viewedWebsite;
}
}
function getViewedBio() {
if (vm.viewedBio === undefined) {
var viewedBio;
var viewedUser = UserService2.getViewedUser();
viewedBio = viewedUser.bio;
if (viewedBio === "") {
viewedBio = "-";
}
return viewedBio;
} else {
return vm.viewedBio;
}
}
vm.viewUser.bio = vm.viewedBio
<form class="form-horizontal" id="infoForm" name="form" ng-submit="ctrl.submitInfoForm(form)" novalidate>
<div class="form-group">
<label for="inputEditName">Name</label>
<input type="text" class="form-control" id="inputEditName" ng-model="ctrl.viewUser.name">
</div>
<div class="form-group">
<label for="inputEditLocation">Location</label>
<input type="text" class="form-control" id="inputEditLocation" ng-model="ctrl.viewUser.location">
</div>
<div class="form-group">
<label for="inputEditWebsite">Website</label>
<input type="text" class="form-control" id="inputEditWebsite" ng-model="ctrl.viewUser.website">
</div>
<div class="form-group">
<label for="inputEditBio">Bio</label>
<textarea rows="3" class="form-control" id="inputEditBio" ng-model="ctrl.viewUser.bio" ></textarea>
</div>
<button type="submit" class="btn btn-default">Save Changes</button>
</form>
var vm = this;
vm.getViewedUser = getViewedUser;
vm.viewUser = getViewedUser();
function getViewedUser() {
if (vm.viewUser === undefined) {
vm.viewUser = UserService2.getViewedUser();
if (vm.viewUser.name === "") {
vm.viewUser.name = "-";
}
if (vm.viewUser.location === "") {
vm.viewUser.location = "-";
}
if (vm.viewUser.website === "") {
vm.viewUser.website = "-";
}
if (vm.viewUser.bio === "") {
vm.viewUser.bio = "-";
}
return vm.viewUser;
} else {
return vm.viewUser;
}
}