我正在直接在用户的个人资料页面上制作个人资料编辑器,我想在其中显示他们所做更改的实时预览。
我基本上是使用附加到输入和文本区域的模型来更新视图。
这是一个预览,显示名称、个人资料图片、标题图片和一些简介:
这个想法是更新那些实时(尚未提交),以便用户可以在保存更改之前预览他们正在做的事情。
所以我遇到的问题是,我不希望任何字段都是必需的,因为我希望他们可以选择更新他们的个人资料,这样他们就可以选择更新个人资料图片、标题或文本。
<div class="profile-editor" ng-if="name == '<?php echo $_SESSION['user']; ?>'">
<div class="current" style="background-image: url({{profile.background}});">
<img class="photo" src="{{ updateProfileForm.photoUrl.$valid ? editPhoto : profile.photo }}" alt="">
<h3>{{profile.username}}</h3>
<p>{{ updateProfileForm.blurbEdit.$valid ? editBlurb : profile.blurb }}</p>
<p ng-if="editingProfile" class="new-blurb">{{editBlurb}}</p>
<p class="preview">preview</p>
</div>
<div class="save-editor">
<p ng-repeat="element in updateProfileForm">
{{element.$valid}}
</p>
<h1>Update Profile</h1>
<p>{{information}}</p>
<form role="form" name="updateProfileForm">
<input name="backgroundUrl" class="edit-name-input" type="text" ng-model="editPhoto" placeholder="paste new photo url">
<input name="photoUrl" class="edit-photo-input" type="text" ng-model="editBackground" placeholder="paste new background url">
<textarea name="blurbEdit" class="edit-blurb" name="" id="" cols="30" rows="10" ng-model="editBlurb" placeholder="NEW BLURB"></textarea>
<button ng-click="updateProfile(editPhoto,editBackground,editBlurb)" class="save-profile">save profile</button>
</form>
</div>
但是,在这样做时,由于它们不是必需的,因此 angular 表示表单在加载时有效(这在技术上是正确的)但发生的情况是我的视图发生了变化并且没有显示任何内容,因为字段显示为有效:
我将如何处理这个?