角速度变化不会引发<pre contenteditable="true"></pre>

时间:2014-06-02 21:19:15

标签: javascript angularjs

我试图获取标签来触发ng-change事件,但无济于事。目的是观察post.content的变化。代码非常简单,为简洁起见省略了部分代码,但它基本上是一个重复的ng模板:

<li ng-repeat="post in posts" data-id="[[post.id]]" data-rank="[[post.sortrank]]" class="post">
    <ng-include src="post.template"></ng-include>
</li>

重复的模板:

<script type="text/ng-template" id="postText.html">
    <pre ng-blur="savePost($event, post)" ng-change="changePost()" ng-model="post.content" class="postText" contenteditable="true">[[post.content]]</pre>
</script>

JS:

$scope.savePost = function($event, post) { //This fires correctly
    console.log($event);
    console.log(post);
};

$scope.changePost = function() { //This doesn't fire at all
    console.log("changed!");
};

这可能是因为这个属性令人满意吗?因为我可以在Angular教程网站上使用ngChange示例。

1 个答案:

答案 0 :(得分:2)

您可以使用akatov's angular-contenteditable.js

来自文档...... JS:

angular.module('myapp', ['contenteditable'])
  .controller('Ctrl', ['$scope', function($scope) {
    $scope.model="<i>interesting</i> stuff"
  }])

HTML:

<div ng-controller="Ctrl">
  <span contenteditable="true"
        ng-model="model"
        strip-br="true"
        select-non-editable="true">
  </span>
</div>

Plunker