Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将Ckeeditor值绑定到AngularJS和Rails中的模型文本

将Ckeeditor值绑定到AngularJS和Rails中的模型文本
EN

Stack Overflow用户
提问于 2012-08-17 00:20:11
回答 7查看 30.9K关注 0票数 33

我想将CKEditor文本绑定到ng-model文本。我的观点:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <form name="postForm" method="POST" ng-submit="submit()" csrf-tokenized class="form-horizontal">
  

    <fieldset>
    <legend>Post to: </legend>
    <div class="control-group">
      <label class="control-label">Text input</label>
      <div class="controls">
        <div class="textarea-wrapper">
          <textarea id="ck_editor" name="text" ng-model="text" class="fullwidth"></textarea>
        </div>
        <p class="help-block">Supporting help text</p>
      </div>
    </div>

    <div class="form-actions">
      <button type="submit" class="btn btn-primary">Post</button>
      <button class="btn">Cancel</button>
      <button class="btn" onclick="alert(ckglobal.getDate())">Cancel123</button>
    </div>
  </fieldset>
</form>

控制器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
      function PostFormCtrl($scope, $element, $attrs, $transclude, $http, $rootScope) {
      $scope.form = $element.find("form");
      $scope.text = "";
    
      $scope.submit = function() {
          $http.post($scope.url, $scope.form.toJSON()).
          success(function(data, status, headers, config) {
                  $rootScope.$broadcast("newpost");
                  $scope.form[0].reset();
              });
      };
    
      $scope.alert1 = function(msg) {
          var sval = $element.find("ckglobal");
          //$('.jquery_ckeditor').ckeditor(ckeditor);                                                                                                                      
          alert(sval);
      };
    }
    PostFormCtrl.$inject = ["$scope", "$element", "$attrs", "$transclude", "$http", "$rootScope"];

我想在提交表单时在$scope.text中设置CKEditor值。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-08-18 19:29:20

CKEditor不会在键入时更新文本区,因此您需要注意它。

这里有一个指令,它将使ng-model绑定与CK一起工作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
angular.module('ck', []).directive('ckEditor', function() {
  return {
    require: '?ngModel',
    link: function(scope, elm, attr, ngModel) {
      var ck = CKEDITOR.replace(elm[0]);

      if (!ngModel) return;

      ck.on('pasteState', function() {
        scope.$apply(function() {
          ngModel.$setViewValue(ck.getData());
        });
      });

      ngModel.$render = function(value) {
        ck.setData(ngModel.$viewValue);
      };
    }
  };
});

在html中,只需使用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<textarea ck-editor ng-model="value"></textarea>

前面的代码将在每次更改时更新ng-model。

如果你只想在保存时更新绑定,重写“”插件,不做任何事情,只触发“保存”事件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// modified ckeditor/plugins/save/plugin.js
CKEDITOR.plugins.registered['save'] = {
  init: function(editor) {
    var command = editor.addCommand('save', {
      modes: {wysiwyg: 1, source: 1},
      readOnly: 1,
      exec: function(editor) {
        editor.fire('save');
      }
    });

    editor.ui.addButton('Save', {
      label : editor.lang.save,
      command : 'save'
    });
  }
};

然后,在指令中使用此事件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
angular.module('ck', []).directive('ckEditor', function() {
  return {
    require: '?ngModel',
    link: function(scope, elm, attr, ngModel) {
      var ck = CKEDITOR.replace(elm[0]);

      if (!ngModel) return;

      ck.on('save', function() {
        scope.$apply(function() {
          ngModel.$setViewValue(ck.getData());
        });
      });
    }
  };
});
票数 76
EN

Stack Overflow用户

发布于 2015-01-09 00:54:34

如果您只是想在angular的编辑器文本区域中检索文本,调用CKEDITOR.instances.editor1.getData();直接在angularjs函数中获取该值。见下文。

在您的html中

在test.controller.js中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(function () {
    'use strict';

    angular
        .module('app')
            .controller('test', test);

    test.$inject = []; 

    function test() {

        //this is to replace $scope
        var vm = this;

        //function definition
        function postJob()
        {          
            vm.Description = CKEDITOR.instances.editor1.getData();
            alert(vm.Description);
        }
    } 
})();
票数 7
EN

Stack Overflow用户

发布于 2013-09-01 02:47:53

Vojta回答部分起作用

在这篇文章中,我找到了一个解决方案

https://stackoverflow.com/a/18236359/1058096

最后的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.directive('ckEditor', function() {
                return {
                    require : '?ngModel',
                    link : function($scope, elm, attr, ngModel) {

                        var ck = CKEDITOR.replace(elm[0]);

                        ck.on('instanceReady', function() {
                            ck.setData(ngModel.$viewValue);
                        });

                        ck.on('pasteState', function() {
                            $scope.$apply(function() {
                                ngModel.$setViewValue(ck.getData());
                            });
                        });

                        ngModel.$render = function(value) {
                            ck.setData(ngModel.$modelValue);
                        };
                    }
                };
            })

编辑:删除未使用的括号

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11997246

复制
相关文章
listview布局操作----将item绑定到activity中
listview分两部分: 1.activity 2.item 将item通过setAdapter绑定到activity。 activity布局如下: <?xml version="1.0" enco
用户4148957
2022/06/14
1K0
listview布局操作----将item绑定到activity中
spring boot 使用ConfigurationProperties注解将配置文件中的属性值绑定到一个 Java 类中
这里给大家推荐一个spring boot的@ConfigurationProperties注解。@ConfigurationProperties 是一个spring boot注解,用于将配置文件中的属性值绑定到一个 Java 类中。它通常与 Spring Boot 应用程序一起使用,以简化配置文件的处理。
高久峰
2023/07/27
6660
将文件字节输出流写入到文本中
1 package DEMO; 2 3 import java.io.File; 4 import java.io.FileOutputStream; 5 import java.io.IOException; 6 import java.io.OutputStream; 7 import java.util.Scanner; 8 9 /* 10 * 文件字节输出流 2014-7-29 11 * 1.给出输出流的目的地 12 * 2.创建指向目的地的输出流 13
Gxjun
2018/03/22
2.6K0
将文件字节输出流写入到文本中
AngularJs之数据绑定
3.在页面中使用 *ngFor=“let product of products ”
黄林晴
2019/01/10
6320
Element 中switch绑定值为0和1
switch开关经常用在是否启用的场合,但是switch默认绑定值的类型是布尔类型,即true和false,在实际的项目中,后端的接口都会用0和1来代替,如何将数值与状态进行关联呢?
越陌度阡
2020/12/22
1.6K0
AngularJS的数据绑定功能展示
在AJAX型的单页应用普及之前,类似Rails、PHP和JSP之类的平台都可以帮助我们创建用户界面(UI),它们会把HTML字符串和数据混合起来,然后再发送给用户并显示。 而jQuery之类的库则在客户端继承了这一模型,让我们遵守类似的风格,但是使用jQuery可以单独刷新DOM中的局部内容,而不是刷新整个页面。在jQuery中,我们会把HTML模板字符串和数据混合起来,然后把获得的结果插入DOM中我们所期望的位置,插入的方式是把结果设置给一个占位符元素的innerHtml属性。 以上机制都工作得相当不错,
企鹅号小编
2018/01/26
1.2K0
【angularjs2】双向绑定
1、ts代码 public UserEntity:any={}; public showUserEntityCommon(index:any):void{ this.UserEntity= this.List[index]; } 2、html <div class="row"> <div class="col-md-2">账号:</div>
用户5640963
2019/07/25
4320
SwiftU:将状态绑定到UI控件
SwiftUI的@State属性包装器允许我们自由修改视图结构体,这意味着当程序更改时,我们可以更新视图属性以匹配。
韦弦zhy
2020/03/20
2.9K0
AngularJS的模板和数据绑定详解
Angular应用中的模板只是一些HTML片段而已,我们可以从服务器上加载,或者在标签中定义,处理方式与所有其他静态资源相同。如果你需要UI组件,你可以在模板中进行定义,使用标准的HTML加上Angular指令即可。模板一旦加载到浏览器之后,Angular将会把它和数据整合起来,然后再把这些模板展开到整个应用中。当我们显示购物车中的物品时,我们已经看到过这种例子: 这里,对于items数组中的每一个元素,Angular将会给外层 生成一份拷贝,包括其中的所有内容。那么,这里的数据是从哪儿来的呢?在购物车
企鹅号小编
2018/01/10
1.2K0
AngularJS的模板和数据绑定详解
将原生事件绑定到组件
官方的例子是晦涩难懂的,除非已经完全理解了,在这里给大家只用通俗易懂的3个例子解释这个问题
砖业洋__
2023/05/06
7030
将原生事件绑定到组件
Angularjs进阶笔记(2)-自定义指令中的数据绑定
自定义指令,是Angularjs用来实现组件化的方式,相比于React和Vue的组件化方式,它真的很复杂,自定义指令太重了,它暴露了太多可供定制的参数,以至于普通的开发者完全不知道要用它来做什么而将其束之高阁,毕竟一般的业务逻辑通过controller和service就已经可以完成了。
大史不说话
2019/03/01
2.1K0
【笔记】AngularJs学习笔记[01] 数据绑定
今天开始,我将陆续将 ng 的学习笔记整理出来,还是像在写 backboneJs 时一样,每篇一语o_o.
前端修罗场
2023/10/07
2280
Java中的静态绑定和动态绑定
一个Java程序的执行要经过编译和执行(解释)这两个步骤,同时Java又是面向对象的编程语言。当子类和父类存在同一个方法,子类重写了父类的方法,程序在运行时调用方法是调用父类的方法还是子类的重写方法呢,这应该是我们在初学Java时遇到的问题。这里首先我们将确定这种调用何种方法实现或者变量的操作叫做绑定。
技术小黑屋
2018/09/05
1.8K0
Java中的静态绑定和动态绑定
一个Java程序的执行要经过编译和执行(解释)这两个步骤,同时Java又是面向对象的编程语言。当子类和父类存在同一个方法,子类重写了父类的 方法,程序在运行时调用方法是调用父类的方法还是子类的重写方法呢,这应该是我们在初学Java时遇到的问题。这里首先我们将确定这种调用何种方法实现或 者变量的操作叫做绑定。
哲洛不闹
2018/09/19
2.1K0
AngularJS 中的 factory、 service 和 provider
初学 AngularJS 时, 肯定会对其提供 factory 、 service 和 provider 感到疑惑, 这三种都是提供服务的方式, 他们到底有什么区别呢?
beginor
2020/08/06
7970
Java中的静态绑定和动态绑定
一个Java程序的执行要经过编译和执行(解释)这两个步骤,同时Java又是面向对象的编程语言。当子类和父类存在同一个方法,子类重写了父类的 方法,程序在运行时调用方法是调用父类的方法还是子类的重写方法呢,这应该是我们在初学Java时遇到的问题。这里首先我们将确定这种调用何种方法实现或 者变量的操作叫做绑定。
哲洛不闹
2018/09/19
1.5K0
图像 | 文本怎么输入到模型 ?
这个是一个手写数字识别的问题。左边是一个图像,右边是一个二维矩阵(14*14),每一个矩阵对应的位置是一个像素值,在这里白色代表。那左边那个Y={0 1 0 0 0 0 0 0 0 0}表示一个向量,相当于一个答案,输入一个x对应一个标签Y,这个Y一般是一维数组,具体得看是几分类问题,就是几位数组,看属于哪个类别,属于哪个类别哪个类别等于1,其他的等于0。
木野归郎
2020/10/30
1.3K0
图像 | 文本怎么输入到模型 ?
将Core ML模型集成到您的应用程序中
此示例应用程序使用经过训练的MarsHabitatPricer.mlmodel模型来预测火星上的栖息地价格。
iOSDevLog
2018/07/25
1.4K0
如何将机器学习的模型部署到NET环境中?
【IT168 资讯】对于以数据为中心的工程师来说,Python和R是数据中心最流行的编程语言之一。但是,它们并不总是构建应用程序的其余部分的语言。这就是为什么你有时需要找到一种方法,将用Python或R编写的机器学习模型部署到基于.NET等语言的环境中。 在本文中,将为大家展示如何使用Web API将机器学习模型集成到.NET编写的应用程序中。 输入:Flask 我们可以使用Flask作为共享和主持机器学习预测的一种方式。让我们使用来自著名的Kaggle比赛的Titanic 数据集。首先,创建一个新文件,并
企鹅号小编
2018/02/08
1.9K0
如何将机器学习的模型部署到NET环境中?
文本获取和搜索引擎中的反馈模型
coursera课程 text retrieval and search engine 第五周 推荐。
爬蜥
2019/07/09
1.4K0

相似问题

AngularJS :将ngrepeat值绑定到AngularJS中的模型

14

将选项值绑定到angularjs中的ng模型

30

angularjs将模型绑定到模型中的什么?

10

使用TinyMCE <textarea>模型将值绑定到AngularJS

13

AngularJS模型绑定到许多文本框

24
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文