小编Squ*_*ler的帖子

如何知道你是在for循环通过对象的最后一次传递?

我有一个像这样的对象:

var obj = { thing_1 : false,
            thing_2 : false,
            thing_3 : true,
            thing_4 : false,
            thing_5 : true
           }
Run Code Online (Sandbox Code Playgroud)

我现在循环遍历此对象并搜索真实的对象键,如下所示:

  for (value in obj){  
    if (obj[value] === true ){
      // do something
    }
  }
Run Code Online (Sandbox Code Playgroud)

我如何知道何时到达最后一个循环传递,其中一个键是真的?

javascript

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

Angular:使用分隔符/分隔符获取ng-repeat列表

Angular仍然很新,只是找到我的方式.

我正在使用ng-repeat输出一个字母表的名称列表.我想在此列表中添加作为标签的分隔符.

例:

--------
A
--------
Author 1
Author 2

--------
B
--------
Author 3
Author 4
etc
Run Code Online (Sandbox Code Playgroud)

我的想法是使用嵌套的ng-repeats循环遍历字母表,通过第二个ng-repeat获取具有该特定字母的作者的对象.这是我到目前为止所拥有的:

<div data-ng-repeat="letter in alphabet">
    <div class="item item-divider">
        {{letter}}
    </div>
    <ul>
        <li data-ng-repeat="speaker in GetSpeakers(letter)" type="item-text-wrap" href="#/speaker/{{speaker.ID}}">
            {{speaker.title}}
        </li>
    </ul> 
</div>
Run Code Online (Sandbox Code Playgroud)

控制器代码:

.controller('SpeakersCtrl', function($scope, $routeParams, StorageHandler) {

    $scope.GetSpeakers = function(letter) {
        // Get list of authors for that letter
        console.log('test '+letter);
    };

    $scope.alphabet = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'];
})
Run Code Online (Sandbox Code Playgroud)

小提琴:http://jsfiddle.net/t6Xq8/

我有一些问题.

  1. 一般来说,使用嵌套的ng-repeat是解决这个问题的好方法,还是Angular专门为此目的而内置?一些消息人士还说,在ng-repeat中使用函数是一个坏主意.但它确实有效,所以我很困惑为什么我不应该使用它.
  2. 在查看控制台时,GetSpeakers会在此示例中被调用两次,我无法找出原因?
  3. 我应该如何将对象返回到GetSpeakers函数中的作用域,同时防止$ scope的重载?

angularjs angularjs-ng-repeat

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

Angular UI Router:abstract:true不显示页面

我试图用嵌套导航将我的大脑包裹在Angular UI路由器周围.

我的应用有多个页面.我已经设置了StateProvider,并且页面之间的基本路由工作正常.但是,我现在正尝试在其中一个页面中实现选项卡式视图.我无法让它发挥作用.

这里可以看到一个基本的例子:http: //codepen.io/anon/pen/eBLfD

具体来说:1)第一个选项卡的内容不会被加载; 2)当我将abstract设置为false时,保存选项卡的页面会被加载.

我已经尝试将abstract设置为false,然后页面加载,但第一个选项卡的内容不会被加载.我在抨击这个 - 我错过了什么?

angularjs angular-ui angular-ui-router

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

Javascript:在午夜获取今天的毫秒数

我想计算今天午夜的时间戳,但是以毫秒为单位.

我目前有:

  var d = new Date();
  d.setUTCHours(0,0,0,0);
Run Code Online (Sandbox Code Playgroud)

这输出:

Thu Mar 20 2014 01:00:00 GMT+0100 (CET)
Run Code Online (Sandbox Code Playgroud)

如何将其转换为基于毫秒的时间戳?

javascript date

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

Angular最佳实践:在工厂或控制器中承诺?

我的应用程序中有一个处理API调用的基本工厂.目前我正在使用表格:

.factory('apiFactory', function($http){

  var url = 'http://192.168.22.8:8001/api/v1/';

  return {
    getReports: function() {
      return $http.get(url+'reports').then(function(result) {
        return result;
      });
    },
    getReport: function(id) {
      return $http.get(url+'report/'+id).then(function(result) {
        return result;
      });
    }
  }
})
Run Code Online (Sandbox Code Playgroud)

在我的控制器中,我正在处理这样的承诺:

.controller('exampleController', function($scope, apiFactory) {

      apiFactory.getReports().then(
        function(answer) {
          if (answer.status==200){
            if (answer.data.status == "error"){
              // DISPLAY ERROR MESSAGE
              console.log(answer.data.msg);
            }
          } else{
            // THROW error
            console.log('error: ', answer);
          }
        },
        function(error){
          console.log('error: ', answer);
        }
      );
    }
  }
})
Run Code Online (Sandbox Code Playgroud)

似乎我可以将承诺处理转移到我的工厂而不是在我的控制器中进行,但我不确定除了较小的控制器之外是否还有其他好处.

有人可以解释有关这种模式的最佳做法吗?

javascript promise angularjs

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

从 Flow 迁移到 Typescript:TS 中的 $Keys 等效?

Flow 具有方便的$Keys实用功能,可以从对象中提取键并创建字符串文字的联合。所以你可以这样做:

const foo = {
   input: Input,
   button: Button,
   select: Select
}

type FormType = $Keys<typeof foo>      // FormType now is: 'input' | 'button' | 'select'
Run Code Online (Sandbox Code Playgroud)

Typescript 是否具有等效功能?我知道,keyof但是interface当 Flow 可以获取对象的键时,它只能获取 的键。

typescript flowtype

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

npm 审计与纱线审计

我有一个 React Native 项目(0.61.4)yarn用作它的包管理器。

当我运行时yarn audit,报告了大量漏洞:

18202 vulnerabilities found - Packages audited: 958823
Severity: 18202 High
?  Done in 14.34s.
Run Code Online (Sandbox Code Playgroud)

大多数都在一些非常深的依赖路径中。例如:

????????????????????????????????????????????????????????????????????????????????
? high          ? Prototype Pollution                                          ?
????????????????????????????????????????????????????????????????????????????????
? Package       ? lodash                                                       ?
????????????????????????????????????????????????????????????????????????????????
? Patched in    ? >=4.17.12                                                    ?
????????????????????????????????????????????????????????????????????????????????
? Dependency of ? react-native                                                 ?
????????????????????????????????????????????????????????????????????????????????
? Path          ? react-native > @react-native-community/cli >                 ?
?               ? metro-react-native-babel-transformer > @babel/core > lodash  ?
????????????????????????????????????????????????????????????????????????????????
? More info     ? https://www.npmjs.com/advisories/1065                        ?
????????????????????????????????????????????????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)

当我运行时npm audit …

auditing node.js npm yarnpkg

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

使用Javascript将类添加到YouTube iframe元素

我正在一个有相当多文章的网站上工作.很多人通过YT嵌入代码嵌入了一个或多个YouTube视频.

由于设计已经改变,以前嵌入的视频的高度和宽度不再符合新设计.因此,我使用CSS定位iframe以显示正确的尺寸.这工作正常,但也有其他iframe对象(例如Soundcloud播放器)无意中调整大小.由于YT或SC嵌入代码没有类,我无法定位一种嵌入代码,而另一种嵌入代码则不受影响.

是否可以使用js仅将类添加到YouTube iframe元素,但保留其他iframe元素?

javascript youtube iframe jquery soundcloud

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

在Xcode的构建阶段之后运行Applescript

我有一个Applescript,可以打开Safari开发人员工具。每次我构建Cordova / Phonegap应用程序时,这免除了我单击开发->检查-> index.html的麻烦。

我现在想在构建项目并在模拟器中打开它时调用此Applescript。

我已尝试按照https://developer.apple.com/library/ios/recipes/xcode_help-project_editor/Articles/AddingaRunScriptBuildPhase.html中的说明添加构建阶段并添加脚本。

但是,当我在XCode中构建项目时,出现错误:"auto_opendevtools.applescript: bad interpreter: Permission denied"。似乎所有权限都很好。

在构建阶段如何输入脚本:

在此处输入图片说明

导致错误:

在此处输入图片说明

xcode applescript ios cordova

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