小编Jsh*_*523的帖子

React.js:设置innerHTML与dangerouslySetInnerHTML

设置元素的innerHTML与在元素上设置dangerouslySetInnerHTML属性有什么"幕后"的区别吗?假设我为了简单起见正确地清理了东西.

例:

var test = React.createClass({
  render: function(){
    return (
      <div contentEditable='true' dangerouslySetInnerHTML={{ __html: "Hello" }}></div>
    );
  }
});
Run Code Online (Sandbox Code Playgroud)

VS

var test = React.createClass({
  componentDidUpdate: function(prevProp, prevState){
    this.refs.test.innerHTML = "Hello";
  },
  render: function(){
    return (
      <div contentEditable='true' ref='test'></div>
    );
  }
});
Run Code Online (Sandbox Code Playgroud)

我做的事情比上面的例子复杂一点,但总的想法是一样的

html javascript reactjs

135
推荐指数
3
解决办法
13万
查看次数

Facebook和Cross Domain Messaging的SecurityError

我们有一个利用facebook javascript sdk和登录功能的应用程序.

我们一直注意到生产日志中出现了这个错误.特别适用于版本为10.3及更高版本的iOS设备.似乎也只是针对safari浏览器

SecurityError(DOM Exception 18):阻止具有源" https://www.mymadeupsite.com "的帧访问具有源" https://staticxx.facebook.com " 的帧.被访问的帧将"document.domain"设置为"facebook.com",但请求访问的帧没有.两者都必须将"document.domain"设置为相同的值才能允许访问.

这是我们的init函数:

        init: function(options) {
            var facebookUrl, scriptInclude;
            Facebook.baseHost = options.baseHost;
            if (typeof FB !== "undefined" && FB !== null) {
                return Facebook.setup();
            } else {
                if (options.appId == null) {
                    throw 'Facebook: cannot init without appId';
                }
                window.fbAsyncInit = function() {
                    FB.init({
                        appId: options.appId,
                        version    : 'v2.3',
                        channelUrl: options.channelUrl || ("" + document.location.protocol + "//" + document.location.host + "/channel.html"),
                        status: true,
                        cookie: false,
                        xfbml: false,
                        oauth: true
                    }); …
Run Code Online (Sandbox Code Playgroud)

javascript facebook cross-domain ios facebook-javascript-sdk

18
推荐指数
1
解决办法
2239
查看次数

更改活动模型序列化器默认适配器

如果我想从默认属性适配器切换到json api适配器,我会在哪里这样做?

入门指出:

一般来说,作为AMS的用户,您将编写(或生成)这些序列化程序类.如果要使用其他适配器(例如JsonApi),可以在初始化程序中更改它:

ActiveModel::Serializer.config.adapter = :json_api
Run Code Online (Sandbox Code Playgroud)

他们指的是什么初始化器?我要创建一个新的吗?抱歉,这个菜鸟问题

ruby json ruby-on-rails active-model-serializers ruby-on-rails-4

16
推荐指数
2
解决办法
6278
查看次数

Rails ActiveRecord:从具有相同列名的多个表中获取

我有一个简单的用例:

用户有许多推文Tweet属于User

我正在尝试采用两个表中存在的列名.例如:

@tweets = Tweet.includes(:user).all.pluck(:created_at)
Run Code Online (Sandbox Code Playgroud)

每个表都有一个created_at列,但上面的结果返回tweet的created_at.我怎样才能拔出用户的created_at?

我的解决方法是在下面使用连接并选择:

@tweets = Tweet.joins(:user).select("users.created_at AS created_date").all
Run Code Online (Sandbox Code Playgroud)

那么我怎么能通过使用pluck来做到这一点?

activerecord ruby-on-rails ruby-on-rails-4

5
推荐指数
1
解决办法
3585
查看次数

Angular-drag-and-drop-lists:具有draggable属性的输入,在IE中导致意外行为

我正在使用Angular-drag-and-drop-lists.在Windows 8上使用IE 11时,我注意到以下错误:

  • 我必须双击才能开始输入
  • "x"(ms-clear)实际上并没有做任何事情
  • 我不能突出文字.

这在Chrome中运行良好,在IE和Chrome中尝试以下演示:http: //marceljuenemann.github.io/angular-drag-and-drop-lists/demo/#/types

有人知道官方修复或解决方法吗?

javascript drag-and-drop angularjs

5
推荐指数
1
解决办法
1157
查看次数

Rails sanitizer:允许样式属性中的某些样式

我正在使用rails-html-sanitizer,我目前正在将样式属性列入白名单.但是,我只想允许某些样式列入白名单.

是否可以指定允许哪些样式?例如,允许以下内容:

style="text-align: center;"
Run Code Online (Sandbox Code Playgroud)

在文档中,我看到以下内容,但我认为它与我正在尝试的相反: white_list_sanitizer.sanitize_css('background-color: #000;')

如果我不能将某些样式列入白名单,我的下一个选择是将样式附加到某些类.

html css sanitization ruby-on-rails

5
推荐指数
1
解决办法
461
查看次数

数据库清理程序:清除vs截断

以下有什么区别?

  • DatabaseCleaner.clean_with(:截断)
  • DatabaseCleaner.clean

我想弄清楚的是使用数据库清理程序清理我的测试中的before(:all)钩子(性能明智)的最佳方法是什么.我之前的(:all)钩子只是创建了大量的工厂并在它们之间创建了一些关联.目前,我只是将它们全部加载到之前(:每个),不必担心之后的清理.

我目前的策略如下:

RSpec.configure do |config|
  config.use_transactional_fixtures = false

  config.before(:suite) do
    DatabaseCleaner.clean_with(:truncation)
  end

  config.before(:each) do |example|
    DatabaseCleaner.strategy = example.metadata[:js] ? :truncation : :transaction
    DatabaseCleaner.start
  end

  config.after(:each) do
    DatabaseCleaner.clean
  end
Run Code Online (Sandbox Code Playgroud)

所以除了我之前的问题,我的追求(:all)应该是什么样的?

rspec ruby-on-rails capybara database-cleaner

3
推荐指数
1
解决办法
1677
查看次数