如何在AngularJS中预填充ngModel

时间:2013-10-20 00:27:53

标签: angularjs

我不知道如何在这种情况下预先填充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实体......所以你得到的结果如下:

enter image description here

希望我的两个问题都能解决!谢谢(这是一个非常令人沮丧的一天)!

1 个答案:

答案 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帖子解决了这个问题并在此处包含了更改:

http://jsfiddle.net/VSJQX/2/