我不知道如何在这种情况下预先填充ng-model,我必须使用ngBind。我尝试了ng-init,但它没有用。
<h6 ng-show="isOwner" ng-bind="currentMagazine.magazine_name"
contenteditable ng-model="currentMagazine.magazine_name"
ng-change="update()"></h6>
我有一个单独的指令,将可疑属性绑定到ngModelController。
现在的问题是每当我更新模型时,ng-bind将跳出并刷新div元素,导致cursur返回到文本的开头,这使得任何用户都无法键入。
我以这样的方式尝试了ng-init:
<div ng-init="magazineName = currentMagazine.magazine_name">
<h6 ng-show="isOwner"
contenteditable ng-model="magazineName"
ng-change="update()"></h6>
</div>
它不起作用。如果我不使用ng-bind,则不会显示任何文本。
另外我注意到它可能与这个问题有关,当我输入空格或删除键时,它们会被转义为HTML实体......所以你得到的结果如下:
希望我的两个问题都能解决!谢谢(这是一个非常令人沮丧的一天)!
答案 0 :(得分:0)
在app.js中执行此操作:
$scope.magazineName = $scope.currentMagazine.magazine_name;
在HTML中执行以下操作:
<input
ng-show="isOwner"
contenteditable
ng-change="update()"/>
或
<h6 ng-show="isOwner"
contenteditable
ng-model="currentMagazine.magazine_name"
ng-change="update()">
{{currentMagazine.magazine_name}}
</h6>
......虽然可能不是,但如果没有看到它就有点难以衡量......如果你想更多地关注它,请制作一个jsfiddle或plunkr。
如果你只是想制作一些仍然可以编辑并绑定到模型的大型文本,那么根据需要设置输入的样式可能更容易。
决定玩contenteditbale,因为我有机会学到一些东西......我似乎无法重现这个问题: http://jsfiddle.net/VSJQX/
我看到这样做之后没有更新模型,发现另一个SO帖子解决了这个问题并在此处包含了更改: