Jquery 设置WYMeditor';用AngularJS表示内容

Jquery 设置WYMeditor';用AngularJS表示内容,jquery,angularjs,wymeditor,Jquery,Angularjs,Wymeditor,我的页面上有一个WYMeditor实例,我想使用AngularJS控制其中文本的值 我尝试过的几种方法都不奏效: 让我们假设: $scope.Details = 'foo'; 它会根据不同的用户操作而变化 使用ng模型: <textarea ng-model="Details" class="wymeditor"></textarea> 这将返回一条错误消息,该消息引用WYMeditor的html()函数声明 Error: this._doc is undefined

我的页面上有一个WYMeditor实例,我想使用AngularJS控制其中文本的值

我尝试过的几种方法都不奏效:

让我们假设:

$scope.Details = 'foo';
它会根据不同的用户操作而变化

  • 使用ng模型:

    <textarea ng-model="Details" class="wymeditor"></textarea>
    
    这将返回一条错误消息,该消息引用WYMeditor的html()函数声明

    Error: this._doc is undefined
    
  • 我正在使用WYMeditor 0.5、Angular 1.1.5、jQuery 2.0.3和jQuery migrate 1.2.1(以便WYMeditor与jQuery 2一起工作)

    我曾想过在iFrame声明中添加ng model=“Details”,但我不知道如何做到这一点,而且似乎还有一个更深层次的问题需要解决,那就是如何解决


    谢谢

    WYMeditor需要一些时间来初始化。最好在
    postInit
    hook中设置与它的交互

    angular.module('myApp')
      .directive('wymeditor', ($log, $parse) ->
        scope:
          ngModel: '='
        restrict: 'C'
        link: (scope, element, attrs) ->
          $log.debug 'Initializing WYMeditor', attrs.wymOptions
          options = $parse(attrs.wymOptions)()
          options.postInit = (wym) ->
            # we need to wait till editor is ready to interact with it
            scope.$watch 'ngModel', (newVal, oldVal) ->
              $log.debug 'ngModel Changed, refreshing editor....'
              wym._html(scope.ngModel)
    
          element.wymeditor( options )
    
      )
    
    然后,您可以使用以下内容设置WYMeditor:

    <textarea
      class="wymeditor"
      wym-options="{
        skin: 'seamless',
        iframeHtml: WYMeditor.SKINS.seamless.OPTS.iframeHtml,
        logoHtml: ''
      }"
      ng-model="someVar"
      ></textarea>
    
    
    
    请注意,上述内容不会填充模型。WYMeditor不提供检测更改的方法。最可靠的方法是每隔几秒钟轮询一次更改。改为签出。

    wym.html($scope.Details)
    绝对是更新编辑器内容所需的方法。
    this.\u doc
    错误使我认为您的编辑器没有正确初始化(在调用之前查找错误),或者您没有得到您认为正确的编辑器实例。关于最初如何创建WYMeditor实例的更多详细信息可能会有所帮助。
    <textarea
      class="wymeditor"
      wym-options="{
        skin: 'seamless',
        iframeHtml: WYMeditor.SKINS.seamless.OPTS.iframeHtml,
        logoHtml: ''
      }"
      ng-model="someVar"
      ></textarea>