1

在必须使用 ngBind 的情况下,我不知道如何预填充 ng-model。我尝试了 ng-init,但它不起作用。

        <h6 ng-show="isOwner" ng-bind="currentMagazine.magazine_name" 
        contenteditable ng-model="currentMagazine.magazine_name" 
        ng-change="update()"></h6>

我有一个单独的指令,将 contenteditable 属性绑定到 ngModelController。

现在的问题是,每当我更新模型时,ng-bind 都会跳出并刷新 div 元素,导致光标回到文本的开头,这使得任何用户都无法输入。

我以这样的方式尝试了 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 实体......所以你会得到这样的结果:

在此处输入图像描述

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

4

1 回答 1

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/

于 2013-10-20T02:24:00.460 回答