小编gar*_*dni的帖子

Sublime Text 2突出显示始终在尾随空格插件上禁用

在Sublime Text 2中,我安装了尾部空格插件,但突出显示始终设置为禁用.

如果我切换高亮区域,请执行以下操作:

edit -> trailing spaces -> highlight regions

我总是得到以下内容:

尾随空格的突出显示被禁用!

我从包安装开始重新启动了sublime,但切换似乎不起作用,有没有人知道如何解决这个问题?

解决问题 - 解决问题的方法

至于其他人似乎,无论我做什么,我似乎无法突出显示这个尾随空格,所以我所做的是在保存时自动删除尾随空格.不太理想,但现在已经习惯了,效果很好.

转到SublimeText 2 > 首选项 > 用户设置(或只需点击Mac标准cmd+ ,).这应该将您的用户设置作为JSON文件打开.将以下内容添加到您的文件中

"trim_trailing_white_space_on_save": true

而已.你很高兴.

sublimetext sublimetext2

10
推荐指数
2
解决办法
3017
查看次数

单元测试$ window resize方法

我在一个简单的指令链接函数中有以下代码,它检查窗口大小调整并调用函数.

return {
    restrict: 'A',
    link: function (scope) {
        angular.element($window).on('resize', function() {
            scope.getSize();
        });

        scope.getSize() = function() {
            return true;
        };
    }
}
Run Code Online (Sandbox Code Playgroud)

我正试图测试($window).on('resize')那个scope.getSize()叫做的.

在我的测试中,我编译我的指令如下:

beforeEach(inject(function($rootScope, $compile, _$window_) {
    $window = _$window_;
    $scope = $rootScope.$new();
    element = angular.element('<div data-watch-resize></div>');
    element = $compile(element)($scope);
    $scope.$digest();
}));
Run Code Online (Sandbox Code Playgroud)

然后我监视窗口的resize函数,并期望函数被调用

spyOn($window, 'resize');
$window.innerWidth = 1026;
$scope.$digest();
expect(element.scope().getSize()).toHaveBeenCalled();
Run Code Online (Sandbox Code Playgroud)

但是我得到以下错误

Error: resize() method does not exist

我不确定为什么它不存在,有什么明显的我做错了吗?

unit-testing window angularjs karma-jasmine

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

如何覆盖过滤器:CSS 中的无

我有一个适用于IE7 的特定样式表filter:none;我无权访问此文件,因此不能简单地删除该行。我需要通过CSS以某种方式覆盖它,以忽略filter:none;设置。

我试过使用filter:; filter: -;andfilter: !important;这应该会导致过滤器属性无效,但过滤器仍在设置中。

是否可以在不删除 IE7 特定样式表中的行或使用 javascript/jquery 的情况下执行此操作?


回答:

为了解决我的具体问题,不可能 像我要求的那样简单地filternull等效的方法覆盖。正如下面的答案所暗示的那样,必须通过将过滤器直接应用于我想要覆盖的位置来覆盖它。

IE7 特定样式表:

.div.example { 
    filter:none;
}
Run Code Online (Sandbox Code Playgroud)

被覆盖: 通用样式表:

.div.example {
    filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#7F000000,endColorstr=#7F000000);
}
Run Code Online (Sandbox Code Playgroud)

html css filter internet-explorer-7

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

限制对云前端分发背后的 s3 静态网站的访问

我想暂时限制用户访问我在 s3 中托管的静态网站,该网站位于 Cloudfront 发行版后面。

这是可能的,如果可以,我可以使用什么方法来实现这一点?

我已经能够通过使用存储桶策略中的条件来限制对我的 s3 存储桶的特定访问,该条件如下所示:

{
  "Version": "2012-10-17",
  "Statement": [
      {
          "Sid": "VisualEditor0",
          "Effect": "Allow",
          "Principal": {
              "AWS": "*"
          },
          "Action": "s3:GetObject",
          "Resource": "arn:aws:s3:::my-bucket/*",
          "Condition": {
              "IpAddress": {
                  "aws:SourceIp": "12.34.56.73/32"
              }
          }
      }
  ]
}
Run Code Online (Sandbox Code Playgroud)

它可以工作并将我的 s3 存储桶限制为我的 ip,但这意味着 cloudfront url 获取403 forbidden: access denied.

在阅读 AWS 文档时,它建议限制对 s3 资源的特定访问,请使用Origin Access Identity. 但是,他们指定了以下内容:

如果您没有看到限制存储桶访问选项,则您的 Amazon S3 源可能被配置为网站终端节点。在该配置中,必须使用 CloudFront 将 S3 存储桶设置为自定义源,并且您不能对它们使用源访问身份。

这表明我不能在这种情况下使用它。理想情况下,我想强制我的分发或存储桶策略使用特定的安全组并以这种方式控制它,以便我可以轻松添加/删除批准的 ip。

amazon-s3 amazon-web-services amazon-cloudfront

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

在jquery中使用$(this)选择器和另一个嵌套选择器

使用时指定嵌套选择器的最佳方法是什么$(this)

在这个例子中:

$('.example').each(function() {
    var url = $(this).attr('href');
});
Run Code Online (Sandbox Code Playgroud)

url会返回undefined,因为它会'a'首先要求选择器.理想情况下,我想说:

var url = $(this, 'a').attr('href');
Run Code Online (Sandbox Code Playgroud)

但这不起作用,以下按预期工作,但看起来不是很整洁:

$('.example').each(function() {
    var link = $(this).find('a');
    var url = $(link).attr('href');
});
Run Code Online (Sandbox Code Playgroud)

那么,如何使用$(this)'a'一起正确?


注意:我知道以下内容可行,但不是出于我的问题的目的.

 $('.example > a').each(function() {
     var url = $(this).attr('href');
 });
Run Code Online (Sandbox Code Playgroud)

javascript jquery this attr

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

jQuery检查元素通过数据属性而存在,仅匹配特定值的开头

我希望能够检查是否存在以特定值开头的特定数据属性。

例如,假设我有以下HTML代码:

 <div data-attr="123ABC"></div>
 <div data-attr="123456"><div>
 <div data-attr="TEST"></div> 
Run Code Online (Sandbox Code Playgroud)

然后我想找到data-attr以开头的数据标签的任何使用123

 if ($('[data-attr="123"]').length > 0) { 
     //do something
 }
Run Code Online (Sandbox Code Playgroud)

这似乎总是返回,0因为我没有该data-attr="123"怎么做,因此我只能检查以123开头并在此之后有任何内容的特定数据属性?

javascript jquery custom-data-attribute

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

.trim() 不是函数

我有一个非常简单的字符串,它可以包含一个可能包含空格的列表:

string = "one, two,three ";
Run Code Online (Sandbox Code Playgroud)

我想首先拆分字符串,以创建一个包含三个字符串的数组,然后使用删除任何空格.trim()

array = string.split(',').trim();
Run Code Online (Sandbox Code Playgroud)

返回 "one","two","three"

但是有时它会失败并返回错误 .trim() is not a function

我读到.trim()返回一个新字符串,而不是当前字符串的修剪版本。所以我用了一个 for 循环来做上面的事情:

array = string.split(',');
for (var i = 0; i < array.length; i++) {
    var item = array[i].trim();
    array.push(item);
}
Run Code Online (Sandbox Code Playgroud)

返回 "one","two","three"

我的问题是,谁能解释为什么我只是有时会收到错误?如果数组从未从我的示例中改变,并且任何人都可以为我的修复提供更清晰的解决方案。

javascript arrays trim

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

angular.element(document).ready 的替代品

我注意到与这个主题相关的大多数问题都是关于 jQuery$(document).ready函数在 angular 中的替代方案,angular.element($document).ready但是我想要一个可测试的/最佳实践替代方案。

我目前正在注入 Bing Maps,它需要在我的控制器中的代码执行之前加载。

目前我将控制器代码包装在准备好的文档中:

angular.element($document).ready(function() {
    self.map = new Microsoft.Maps.Map(document.getElementById('map'), {
        credentials: $scope.credentials,
        enableClickableLogo: false,
        enableSearchLogo: false,
        showDashboard: false,
        disableBirdseye: true,
        allowInfoboxOverflow: true,
        liteMode: true,
        minZoom: 2
    });

    $scope.$watch('zoom', function (zoom) {
        self.map.setView({animate: true, zoom: zoom});
    });

    if ($scope.onMapReady) {
        $scope.onMapReady({ map: self.map });
    }

});
Run Code Online (Sandbox Code Playgroud)

哪个有效,但我无法测试它,所以我认为这是不正确的用法。我尝试在指令中设置一个变量,$scope.loaded = true;正如我读到的那样,如果指令链接函数被命中,则必须加载 DOM。然后我尝试用以下内容替换准备好的文档:

$scope.$watch('loaded', function () {
    self.map = new Microsoft.Maps.Map(document.getElementById('map'), {
       credentials: $scope.credentials,
       enableClickableLogo: false,
       enableSearchLogo: false,
       showDashboard: false,
       disableBirdseye: true,
       allowInfoboxOverflow: …
Run Code Online (Sandbox Code Playgroud)

javascript timeout watch document-ready angularjs

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

无服务器:此服务中不存在该功能

在无服务器环境中,我的功能具有以下目录结构:

serverless.yml
functions -
    stories -
        create.js
        get.js
Run Code Online (Sandbox Code Playgroud)

serverless.yml然后我的样子是这样的:

functions:
  stories:
    create:
      handler: functions/stories/create.main
      events:
        - http:
          path: stories/create
          method: post
          cors: true
          authorizer: aws_iam
    get:
      handler: functions/stories/get.main
      events:
        - http:
          path: stories/{id}
          method: get
          cors: true
          authorizer: aws_iam
Run Code Online (Sandbox Code Playgroud)

但是,当我运行测试以检查创建时:serverless invoke local --function create --path mocks/create-event.json我得到以下错误:

Serverless Error ---------------------------------------

  Function "create" doesn't exist in this Service
Run Code Online (Sandbox Code Playgroud)

我设法使一个函数看起来像这样:

functions:
  stories:
    handler: functions/stories/create.main
    events:
      - http:
        path: stories/create
        method: post
        cors: true
        authorizer: aws_iam
Run Code Online (Sandbox Code Playgroud)

由于我添加了get函数,因此我决定需要添加create和故事后的部件,但是无论我如何更改处理程序,这些函数似乎都不存在。

我尝试将路径更改为functions/stories/create/create.main无差异,是否有明显的缺失,我不允许在同一位置使用多个处理程序?

我正在看下面的 …

javascript serverless-framework serverless aws-serverless

0
推荐指数
2
解决办法
1187
查看次数