小编Cha*_*son的帖子

如何从ExtJS控件引用祖先容器对象?

我正在使用ExtJS构建一个包含多个面板作为项目的窗口.其中一个面板包含一个按钮.

我想在我的按钮上附加一个处理程序,这样当我点击按钮时,我可以隐藏包含上述面板和此按钮的窗口.

我的问题是:如何在没有按ID引用窗口的情况下获取对按钮父窗口的引用?我真的想要一个Ext.Window实例的引用,而不是包含我的按钮的Ext.Panel实例.

注意:我不想通过id引用窗口,因为我是Ext.Window类的子类,因此窗口的id不会总是相同.简而言之,我正在创建一个Wizard类,当我单击向导的Cancel按钮时,我想隐藏包含该按钮的向导窗口.

这是我的代码:

var newWizardWindow = new WizardWindow({
  id: 'newWizardWindow',
  title: 'New',
  items: [
    ...
  ],   
  buttons: [{
    text: 'Cancel',
    handler: function() {
      // REFERENCE WizardWindow instance here.
    }
  },{
    id: 'newWizardPreviousButton',
    text: '« Previous',
    disabled: true,
    handler: newWizardNavigator.createDelegate(this, [-1])
  },{
    id: 'newWizardNextButton',
    text: 'Next »',
    handler: newWizardNavigator.createDelegate(this, [1])
  }],
  listeners: {
    …
  }
});
Run Code Online (Sandbox Code Playgroud)

以下是我如何隐藏窗口的一些想法:

  1. this.ownerCt.ownerCt(这是按钮).与将来更新ExtJS不一样,窗口和按钮之间的父项数量可能会发生变化.
  2. 以某种方式存储WizardWindow类中的WizardWindow实例的引用.
  3. 以jQuery方式找到最接近的WizardWindow [CSS]类:$(this).closest('.wizardWindow').也许this.findByParentType('WizardWindow')?

javascript extjs parent

11
推荐指数
1
解决办法
2万
查看次数

如何在jUI中显示/隐藏YUI中的元素?

在jQuery中,当我想显示或隐藏某些内容时,我这样做:

$('#elementId').show();
$('#elementId').hide();
Run Code Online (Sandbox Code Playgroud)

我如何用YUI做到这一点?我已经尝试过YAHOO.util.Dom.get('elementId').hide(),问我的同事,查看文档,搜索谷歌,我发现没有任何帮助.从文档中看起来应该可行

YAHOO.util.Dom.get('elementId').setStyle('display', 'none')
Run Code Online (Sandbox Code Playgroud)

但当然不是.我能想到的就是这个,这很糟糕因为我没有使用框架:

document.getElementById('elementId').style.display = 'none';
Run Code Online (Sandbox Code Playgroud)

javascript yui

10
推荐指数
1
解决办法
5968
查看次数

在最新的Node&NPM下,SSL握手与Express服务器失败

我将Mac上的Node.js升级到最新的0.12.4,以及NPM升级到2.10.1,然后我为我的Express项目重新运行了npm install.

现在,当我访问https:// localhost:3001时,Chrome中的"此网页不可用/ ERR_CONNECTION_REFUSED".当我跑步时,curl -v https://localhost:3001我得到了

curl -v https://localhost:3001/
* Hostname was NOT found in DNS cache
*   Trying ::1...
* Connected to localhost (::1) port 3001 (#0)
* Server aborted the SSL handshake
* Closing connection 0
curl: (35) Server aborted the SSL handshake
Run Code Online (Sandbox Code Playgroud)

这肯定是升级Node.js的结果,因为升级后问题会立即出现.

我开始这样的服务:

options = {
    key: fs.readFileSync('sslkey.pem'),
    cert: fs.readFileSync('sslcert.pem')
};
http.createServer(app).listen(settings.apiPort);
https.createServer(options, app).listen(settings.apiSSLPort);
console.log('Listening on ports: ' + settings.apiPort + ' and ' + settings.apiSSLPort);
Run Code Online (Sandbox Code Playgroud)

有没有人有什么想法导致这个问题?

ssl https node.js express

10
推荐指数
1
解决办法
1048
查看次数

为什么没有为我的ActiveRecord模型调用before_save?

当我使用IRB创建一个新的模型实例并保存时,没有任何东西打印到控制台,我得到一个"ActiveRecord :: StatementInvalid:Mysql :: Error:Column'user_id'不能为null"错误,所以我假设before_save不是被叫.我无法弄清楚为什么.我甚至尝试过使用before_save过滤器.这是我的代码:

require 'secure_resource/secure_resource_encryption'

class Database < ActiveRecord::Base
  belongs_to :username_encryption, :class_name => "Encryption", :foreign_key => :username_encryption_id
  belongs_to :password_encryption, :class_name => "Encryption", :foreign_key => :password_encryption_id

  # Virtual attribute to retrieve the decrypted username.
  def username
    if self.username_encryption.nil?
      return nil
    end

    begin
      return self.username_encryption.encryption
    rescue SecureResourceError
      raise SecureResourceError
    end
  end

  # Provides a way to reset the username.
  def username=(username)
    if self.username_encryption.nil?
      self.username_encryption = Encryption.new
      self.username_encryption.encryption = username
    end
  end

  # Virtual attribute to retrieve the decrypted password.
  def …
Run Code Online (Sandbox Code Playgroud)

validation activerecord ruby-on-rails callback

9
推荐指数
1
解决办法
8984
查看次数

如何通过PHP轻松转换UTC的日期?

我在UTC中的日期时间字段中将日期存储在MySQL数据库中.我正在使用PHP,并且我调用了date_timezone_set('UTC'),以便所有对date()的调用(没有时间戳)以UTC格式返回日期.

然后,我有它,所以给定的网站可以选择其时区.现在我希望日期显示在网站的时区.因此,如果我将日期存储为"2009-04-01 15:36:13",则应在PDT时区(-7小时)内为用户显示为"2009-04-01 08:36:13" .

通过PHP执行此操作的最简单(最少代码)方法是什么?到目前为止,我所想到的只是

date('Y-m-d H:i:s', strtotime($Site->getUTCOffset() . ' hours', strtotime(date($utcDate))));
Run Code Online (Sandbox Code Playgroud)

有更短的方式吗?

php timezone

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

如何加密我网站上的用户内容,以便我甚至无法访问该内容?

我需要基于每个用户加密我的Web应用程序中的内容.

我,root用户,不希望访问用户的内容,期间.

我怎样才能使用户是唯一可以访问其内容的用户?也许我可以这样做,因此他们的登录密码的哈希充当加密和解密密钥(然后他们的密码在我的数据库中存储单向散列,并且加密/解密散列是在登录时从他们的原始密码生成并存储在一个本地的cookie)?但如果他们更改密码怎么办?然后我必须更新所有可能需要大量处理能力的内容.

是否有一种加密方法可以提供此功能,而无需在密码更改时重新加密其内容?或许类似于Linux上的ecryptfs?研究ecryptfs是一个好的起点吗?

是这样只有用户可以访问我的服务器上的内容(甚至不是我)甚至可行吗?

encryption

8
推荐指数
1
解决办法
1076
查看次数

这个.$('.selector')在jQuery中做什么?

我在某人的代码中看到了这一点:this.$('.selector')我很好奇它是做什么的."这个"是一个Backbone视图.那么为"这个"添加前缀的是什么呢.一个jQuery选择器,在给定的上下文中,做什么?

javascript jquery scope backbone.js

8
推荐指数
2
解决办法
411
查看次数

在Backbone视图中填充选择列表数据的常用模式?

我的Backbone应用程序有几个视图,其中包含带有文本输入的表单选择字段和复选框.应使用我的API中的数据填充选择字段.给定的选择字段可以以多种不同的形式重用.

填充这些下拉菜单的常用方法是什么?这是我一起装配的解决方案...... 有更常见的方法吗?

一个可重用的选择字段,用于填充自己... app/views/shared/location_selection.js:

define([
  'jquery',
  'backbone',
  'app/views/base',
  'app/collections/location'
], function($, Backbone, BaseView, LocationCollection) {
  'use strict';

  return BaseView.extend({
    initialize: function(options) {
      this.options = options || {};
      this.options.id = this.options.id || 'location';
      this.options.showBlank = typeof this.options.showBlank != 'undefined' ? this.options.showBlank : false;

      this.collection = new LocationCollection();
    },

    render: function() {
      this.setElement('<select id="' + this.options.id + '"></select>');

      var self = this;
      this.collection.fetch({
        success: function() {
          if (self.options.showBlank) {
            self.$el.append('<option></option');
          }

          self.collection.each(function(model) {
            self.$el.append('<option value="' + model.get('id') + '">' + model.get('name') …
Run Code Online (Sandbox Code Playgroud)

javascript forms html-select backbone.js

8
推荐指数
1
解决办法
1万
查看次数

如何在Handlebars中使用带有RequireJS的预编译模板?

我想预编译我的Handlebars模板,但我不确定它在开发模式下是如何工作的.

通常的做法是有一些像Guard一样的后台进程来持续监控Handlebars模板文件的变化吗?

我正在使用RequireJS来提取模板; 例如:

define(['jquery', 'handlebars', 'text!templates/my_template'], function($, Handlebars, myTemplate) {

  // ...

  var data = {"some": "data", "some_more": "data"};
  var templateFn = Handlebars.compile(myTemplate);
  $('#target').append(templateFn(data));

  // ...

});
Run Code Online (Sandbox Code Playgroud)

所以我理解一旦模板被预编译,就可以这样做:

define(['jquery', 'handlebars'], function($, Handlebars) {

  // ...

  var data = {"some": "data", "some_more": "data"};
  var template = Handlebars.templates['my_template'];
  $('#target').append(template(data));

  // ...

});
Run Code Online (Sandbox Code Playgroud)

请注意以下有关第二个代码段中的内容:

  1. RequireJS模块不再拉入模板.
  2. 不再使用Handlebars.compile().

因此,只要文件系统级修改发生在模板文件中,我通常会运行Guard以保持模板编译?

基本上我的问题是,开发人员打算这样做吗?

if (development) {
  compile templates
}
else {
  use precompiled templates
}
Run Code Online (Sandbox Code Playgroud)

我也在使用Rails,所以也许有一些黑魔法像sass-rails.

requirejs client-side-templating handlebars.js

7
推荐指数
1
解决办法
1万
查看次数

如何解决内置AngularJS应用程序的依赖性问题?

我是AngularJS的新手,正在创建一个使用Grunt构建的应用程序.

当我构建并运行我的应用程序时,我注意到与依赖项加载顺序相关的一些问题:

Uncaught Error: [$injector:nomod] Module 'mycompany.admin.forms' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.
http://errors.angularjs.org/1.2.13/$injector/nomod?p0=mycompany.admin.forms 
Run Code Online (Sandbox Code Playgroud)

在构建的app文件中,模块在声明之前正在使用:

angular.module('mycompany.admin.forms').controller('editController', ['$scope', function($scope) {
    // ...
}]);

angular.module('mycompany.admin.forms', [])

  .config(['$routeProvider', function($routeProvider) {
    // ...
  }]);
Run Code Online (Sandbox Code Playgroud)

以下是我项目的gruntfile.js中的相关片段:

grunt.initConfig({
    distdir: 'build',
    pkg: grunt.file.readJSON('package.json'),
    src: {
        js: ['src/**/*.js'],
    },
    concat: {
        dist: {
            src: ['<%= src.js %>', '<%= src.jsTpl %>'],
            dest: '<%= distdir %>/admin/app.js'
        }
    } …
Run Code Online (Sandbox Code Playgroud)

javascript build dependency-management angularjs gruntjs

7
推荐指数
1
解决办法
5862
查看次数