小编m59*_*m59的帖子

从数组中获取最接近的数字

我有一个从-1000到1000的数字,我有一个数字的数组.像这样:

[2, 42, 82, 122, 162, 202, 242, 282, 322, 362]
Run Code Online (Sandbox Code Playgroud)

我希望我的数字更改为最接近的数组.

例如,我得到80我希望得到的数字82.

javascript arrays

142
推荐指数
11
解决办法
10万
查看次数

打破承诺链并根据链中的步骤调用一个函数(它被拒绝)

更新:

为了帮助这篇文章的未来观众,我创建了这个pluma答案的演示.

题:

我的目标似乎相当简单.

  step(1)
  .then(function() {
    return step(2);
  }, function() {
    stepError(1);
    return $q.reject();
  })
  .then(function() {

  }, function() {
    stepError(2);
  });

  function step(n) {
    var deferred = $q.defer();
    //fail on step 1
    (n === 1) ? deferred.reject() : deferred.resolve();
    return deferred.promise;
  }
  function stepError(n) {
    console.log(n); 
  }
Run Code Online (Sandbox Code Playgroud)

这里的问题是,如果我在第1步失败,两个stepError(1)AND都会stepError(2)被解雇.如果我不return $q.reject那么stepError(2)就不会被解雇,但step(2)会,我明白了.除了我想做的事以外,我已经完成了所有的事情.

如何编写promises以便我可以在拒绝时调用函数,而无需调用错误链中的所有函数?或者还有另一种方法来实现这一目标吗?

这是一个现场演示,所以你有一些工作.

更新:

有点解决了.在这里,我在链的末尾捕获错误并传递数据,reject(data)以便我知道错误函数中要处理的问题.这实际上不符合我的要求,因为我不想依赖于数据.它会很蹩脚,但在我的情况下,将错误回调传递给函数会更加清晰,而不是依赖于返回的数据来确定要做什么.

现场演示(点击).

step(1)
  .then(function() {
    return step(2);
  })
  .then(function() …
Run Code Online (Sandbox Code Playgroud)

javascript promise angularjs

129
推荐指数
4
解决办法
13万
查看次数

如何使用bootstrap将ng-repeat数据拆分为三列

我正在使用ng-repeat和我的代码我有'n'个基于ng-repeat的文本框.我想将文本框与三列对齐.

这是我的代码

<div class="control-group" ng-repeat="oneExt in configAddr.ext">
    {{$index+1}}. 
    <input type="text" name="macAdr{{$index+1}}" 
           id="macAddress" ng-model="oneExt.newValue" value=""/>
</div>
Run Code Online (Sandbox Code Playgroud)

javascript angularjs angularjs-ng-repeat

122
推荐指数
5
解决办法
15万
查看次数

未知提供者:$ modalProvider < - AngularJS的$ modal错误

我一直在收到这个错误,因为我正在尝试实现bootstrap Modal窗口.可能是什么原因造成的?我在http://angular-ui.github.io/bootstrap/#/modal复制/粘贴了所有内容.

javascript modal-dialog angularjs

96
推荐指数
5
解决办法
9万
查看次数

等待承诺?

我有以下angularjs代码:

$scope.clients = commonFactory.getData(clientFactory.getClients());
if ($scope.clients.length > 0) {
    $scope.sampleForm.ClientId = $scope.clients[0].ClientId;
}
Run Code Online (Sandbox Code Playgroud)

而commonFactory中的getData函数:

factory.getData = function (method) {
    method.then(function (response) {
        return response.data;
    }, function (error) {
        $rootScope.alerts.push({ type: 'error', msg: error.data.ExceptionMessage });
    });
};
Run Code Online (Sandbox Code Playgroud)

问题是,由于异步调用,$ scope.clients.length在遇到该行时未定义.

有没有办法不进行长度检查,直到我知道已经分配了$ scope.clients?我看过这样的事情:

$scope.clients = commonFactory.getData(clientFactory.getClients()).then(function () {
    if ($scope.clients.length > 0) {
        $scope.sampleForm.ClientId = $scope.clients[0].ClientId;
    }
});
Run Code Online (Sandbox Code Playgroud)

试图链我的then承诺,但没有骰子......这里的目标是让GetData方法,以避免一堆烦人的代码捕获错误...也许我要对此错了吗?

javascript promise angularjs

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

在Mustache模板中转义双括号{{...}}.(在NodeJS中模板化模板)

我正在尝试模板模板,如下所示:

{{{
{
  "name" : "{{name}}",
  "description" : "{{description}}"
}
}}}

{{{debug this}}}
Run Code Online (Sandbox Code Playgroud)

<h1>{{name}}</h1>
Run Code Online (Sandbox Code Playgroud)

我希望三个括号留在哪里,但是用传入的JSON代替双括号.任何人都知道在没有编写后处理JS代码的情况下执行此操作的最佳方法,如果没有,是否有一个很好的nodeJS模板引擎场景类型?

javascript template-engine node.js mustache

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

检测是否为CDN回退加载了角度依赖关系[angular-route,angular-resource等]

我在ASP.NET MVC 4上使用Angular JS,我使用脚本捆绑从cdn加载,并且在cdn失败的情况下也从原始服务器加载,如下所示:

var jQuery = new ScriptBundle("~/bundles/scripts/jquery",
            "//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js") // CDN
            .Include("~/Scripts/jquery-{version}.js");  // Local fallback
jQuery.CdnFallbackExpression = "window.jQuery"; // Test existence
bundles.Add(jQuery);
Run Code Online (Sandbox Code Playgroud)

var angular = new ScriptBundle("~/bundles/scripts/angular",
            "//ajax.googleapis.com/ajax/libs/angularjs/1.2.0-rc.2/angular.min.js")
            .Include("~/Scripts/angular.js");
angular.CdnFallbackExpression = "window.angular";
bundles.Add(angular);
Run Code Online (Sandbox Code Playgroud)

使用window.jQuery和window.Angular分别检测jQuery或AngularJS是否相当容易.ASP.NET捆绑机制评估CdnFallbackExpression文本以查看它是否需要回退到源服务器.

但是,在AngularJS的更高版本中,其他模块(如ngRoute和ngResource)被分成自己的文件,由开发人员自行决定加载.

如何检测是否加载了其他AngularJS模块?我可以在控制台中输入什么来查看ngAnimate,ngRoute,ngResource等是否成功从CDN加载?

javascript fallback cdn angularjs

21
推荐指数
2
解决办法
5536
查看次数

我可以将javascript存储在本地存储对象中并运行它吗?

让我解释.我正在开发一个javascript应用程序来帮助人们开发网站.我不会明确地了解它的作用,只知道它的工作原理是将它的html/inline css接口叠加在正在开发的网站上,并提供各种工具,如跟踪图像和代码缩小器.

我把它作为.js文件存储在服务器上.所有人要访问我的应用程序都是复制并粘贴一小部分html到他们的页面上使用它,如下所示:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="www.example.com/application.js">
<div class="application"></div>
Run Code Online (Sandbox Code Playgroud)

然后使用jquery的.html()函数将接口的html和内联css插入到'application'div中.

一切都很完美.

除了一件事.加载时间.当用户开发他们的网站时,他们将不断刷新他们的页面,这导致他们不得不等待大约3秒钟(随着时间的推移非常烦人)加载应用程序的界面.

当然,如果打开浏览器的缓存,则问题会消失,但如果您正在开发网站,则需要禁用缓存!这是一个难题.

然后我想使用本地存储对象来保存接口的svg图形的字符串,然后将.html()这些字符串转换为内联css.这是一个精心设计的解决方法,但只有开发人员才会使用此工具.它不是最终用户的事情.它也很漂亮,但事实是,浏览器仍然需要下载脚本才能知道访问本地存储的图像!处理器速度不是瓶颈,而是带宽.

所以我在考虑将脚本本身存储在本地存储对象中,并使用一个很小的初始化脚本来运行它.

初始化脚本将简单地从本地stroage对象中检索脚本作为字符串,相应地解析它然后运行它.

重申我的问题,运行它是我不能做的部分!我可以通过.html(脚本)将脚本插入到页面中,但是我该如何运行呢?

javascript jquery

19
推荐指数
2
解决办法
8741
查看次数

Angular HTML Select选项禁用和启用

我有一个html选择选项

<select>
    <option ng-repeat="field in filter.fields" value="{{field.id}}">{{field.name}}</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我正在从ng-repeat迭代,我想基于一个可选择的字段来禁用选项

<select>
    <option ng-repeat="field in filter.fields" {field.selectable==true?enable:disable} value="{{field.id}}">{{field.name}}</option>
 </select>
Run Code Online (Sandbox Code Playgroud)

我怎么能用角度实现这个目标?

html javascript angularjs angularjs-ng-repeat

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

在Angular中使用主控制器好吗?

我不知道这是不是一个好习惯...我在路由配置中定义了一个控制器,但因为我HomeCtrlng-if声明中他不能听,loginSuccess所以我做了MainCtrl哪些听取loginSuccess并做出适当的反应.这段代码工作正常,但这对我来说就像是一个黑客.我应该删除MainCtrl并使其成为一项服务吗?如果是这样,一些例子真的很棒.

的index.html

<body ng-app="myApp" ng-controller="MainCtrl">
    <div ng-if="!isLoged()">
      <signIn></signIn>
    </div>
    <div ng-if="isLoged()">
      <div class="header">
          <div class="nav">
            <ul>
                <a href="/"><li class="book">navItem</li></a>
            </ul>
          </div>
      </div>
      <div class="container" ng-view=""></div>
    </div>
</body>
Run Code Online (Sandbox Code Playgroud)

App.js

    angular.module('myApp', [])
      .config(function ($routeProvider) {
        $routeProvider
          .when('/', {
            templateUrl: 'views/main.html',
            controller: 'HomeCtrl'
          })
          .otherwise({
            redirectTo: '/'
          });
      })
  .controller('MainCtrl', function ($scope) {
    $scope.user = false;
    $scope.isLoged = function(){
         if($scope.user){
          return true;
         }else{
          return false;
         }
    }
    $scope.$on('event:loginSuccess', function(ev, user) { …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs

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