小编Lor*_*ual的帖子

快速路由器前缀

我对如何在我的快递应用程序中正确设置API路由感到困惑.我想要的是结构化的方式来定义路线而不重复自己.作为数据库,我正在使用RethinkDB.对于每个模型,假设Exercise我在models目录中创建了一个文件.这些文件仅定义模型/模式.我认为每个模型还为我的API定义了一个端点.因此,我创建了一个routes文件夹,在其中我将路由声明在单独的文件中,例如exercises.js.这是我的目录结构:

root
??? app.js
??? bootstrap.js
??? routes
?   ??? exercises.js
?   ??? index.js
?   ??? ...
??? models
?   ??? exercise.js
?   ??? ...
??? ...
Run Code Online (Sandbox Code Playgroud)

示例路由文件如下所示:

module.exports = (function() {
    'use strict';

    var router = express.Router();

    router.get('/exercises', getAllExercises);
    router.get('/exercises/:id', getExerciseById);

    return router;
})();
Run Code Online (Sandbox Code Playgroud)

如您所见,我正在重复路由前缀exercises.这是一个子前缀,因为所有路由都应该以/api.是否可以在单个路由器的前缀中定义,以便我app.use('/api', [routers])在使用app.js并告诉每个路由器具有不同的路由前缀,例如/api/excursions/?我对我的声明感到困惑,也请求反馈.我认为有一种更好的方式来组织我的API,因为我正在做的事情知道我还需要包含所有路由,app.js以作为数组传递到应用程序的所有路由.这是我的app.js:

var express = require('express');
var bodyParser = require('body-parser');
var app = …
Run Code Online (Sandbox Code Playgroud)

node.js express

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

使用jQuery Validation Unobtrusive时描述的aria的多个值

我使用最新版本的jQuery Validation Unobtrusive结合最新版本的jQuery Validate.验证本身就像一个魅力.但是,如果该字段无效,则会将值添加到该aria-describedby属性中.

假设我想输入我的密码(验证密码的长度必须大于6).最初的HTML看起来像这样:

<input data-val="true" data-val-minlength="The field Passwort must be a string or array type with      a minimum length of '6'." 
   data-val-minlength-min="6" data-val-required="The Passwort field is required." 
   id="Password" name="Password" tabindex="2" 
type="password">
Run Code Online (Sandbox Code Playgroud)

我开始输入一个只有5个字符的密码,然后input通过单击某处的某处删除焦点body.验证将贯穿,aria-describedby并将添加一系列属性和值.现在该aria-describedby属性只有一个值Password-error.如果我再次聚焦输入字段并删除所有字符,甚至按下退格键,则会在每个键盘上添加一个新值.这导致以下结果:

<input data-val="true" 
   data-val-minlength="The field Passwort must be a string or array type with a minimum length of '6'." 
   data-val-minlength-min="6" 
   data-val-required="The Passwort field is required." 
   id="Password" name="Password" tabindex="2" type="password" aria-required="true" 
   aria-invalid="true" class="input-validation-error" 
   aria-describedby="Password-error Password-error Password-error …
Run Code Online (Sandbox Code Playgroud)

javascript jquery unobtrusive-validation

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

Angular 1.5路由示例

我试图找到一个使用$ route的角度1.5路由示例.如果我使用比创建代码示例更高的角度版本,我已经看过JSFiddle示例.我找不到1.2以上的工作.理想情况下,我需要一个AngularJS 1.5的工作示例.

我已经尝试过这个例子:

var app = angular.module( "myApp", [] );

app.config( function ( $routeProvider ) {
  $routeProvider
  .when( '/this', { templateUrl: 'this.html' } )
  .when( '/that', { templateUrl: 'that.html' } )
  .when( '/other', { templateUrl: 'other.html' } )
  .otherwise( { redirectTo: '/this' } );
});

app.controller( 'MainCtrl', function ( $scope ) {
});
Run Code Online (Sandbox Code Playgroud)

哪个失败了1.2(并且可能是上面的).

routing angularjs

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

Angular - 使用范围变量设置模型

这是不应该做的事吗?因为我无法让它工作.

在我的控制器中我有

$scope.test = "someValue"
Run Code Online (Sandbox Code Playgroud)

在我看来

<input ng-model="test" />
Run Code Online (Sandbox Code Playgroud)

我期待发生什么

<input ng-model="someValue" />
Run Code Online (Sandbox Code Playgroud)

但是,ng-model保持设置为"test".

我该如何解决这个问题?

javascript scope angularjs

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

使用Resharper单元测试的Karma配置

我正在尝试在当前项目中设置JavaScript单元测试.我们使用的是Visual Studio 2013和ReSharper.最佳解决方案是使用ReSharper Test Runner,因为我们已经将它用于后端测试.现在,我想知道是否有一个选项可以使用karma.config.jsReSharper,以便我在单元测试会话中看到我的所有JavaScript测试,而不是在VS的内置测试资源管理器中.我尝试过Karma Test AdapterChutzpah.但是,它们都与Test Explorer集成,而不是R#Unit Test Sessions.放肆只提供了集成到VS单元测试Explorer作为你可以看到一个扩展这里.

那么是否可以使用带有ReSharper的karma配置来启用代码覆盖等等?使用一堆/// <reference path=".." />标签似乎并不理想.

resharper jasmine karma-runner

5
推荐指数
0
解决办法
227
查看次数

角度材料md-card-header背景

我正在使用角度材料开发一个小的AngularJS应用程序.问题是我无法弄清楚如何正确设置md-card-header使用我的配置中定义的调色板的背景颜色.

$mdThemingProvider.theme('default')
    .primaryPalette('blue')
    .accentPalette('pink');
Run Code Online (Sandbox Code Playgroud)

基本上我想将主要颜色设置为卡片头的背景颜色.我当然可以复制RGB值,创建一个类并使用这个类设置颜色.但是,我会失去在运行时更改主题的好处,或者至少每当我更改主题时我都必须手动更改颜色.

如何将md-colors设置为任何元素,尤其是md-card-header?

css angularjs angular-material

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

返回promise的AngularFire2方法不适用于fromPromise

我正在开发AngularFire2应用程序,并希望实现基本身份验证.到目前为止,身份验证本身仍然有效,但另外我想在注册时创建用户对象,以便每个用户在数据库中都有一个配置文件.这里的主要问题是AngularFire2服务上的几乎所有方法都返回promises.另一方面,db服务使用observables,firebase.Promise并且和observable 的组合以某种方式不能按预期工作.

所以,例如,这不起作用:

Observable.fromPromise(() => this.auth$.createUser(credentials))
Run Code Online (Sandbox Code Playgroud)

这导致错误说Argument of type 'Promise<FirebaseAuthState>' is not assignable to parameter of type 'Promise<{}>'.

这同样适用set于a上的方法db.object.我不知道如何解决这个问题.

我的想法是与承诺一起工作,但在某些时候我必须从一个观察到一个承诺.这就是我所拥有的:

auth.service.ts

register(credentials: ICredentials): firebase.Promise<FirebaseAuthState> {
  return this.auth$.createUser(credentials)
    .then((response: FirebaseAuthState) => this.userService.createUserEntity(response))
    .then(() => this.postSignIn())
    .catch((error: Error) => this.onError(error));
}
Run Code Online (Sandbox Code Playgroud)

user.service.ts

createUserEntity(response: FirebaseAuthState): Promise<boolean> {
  this.user = this.db.object(`/users/${response.uid}`);

  return this.user
    .take(1)
    .filter((snapshot: Snapshot) => !snapshot.$exists())
    .mergeMap(() => this.createUser(response))
    .toPromise();
}

private createUser(response: FirebaseAuthState): Observable<any> {
  const { email, displayName, photoURL, providerId } = …
Run Code Online (Sandbox Code Playgroud)

javascript firebase rxjs5 angularfire2 angular

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

如何获取当前工作目录的最大目录深度

我现在正在尝试Windows批处理编程.到目前为止一切顺利,我可以很好地弄清楚如何删除超过x天的空目录和文件.问题是,如果我开始删除空目录,并且我们假设该进程只运行一次,那么在当前工作目录具有以下结构的情况下,总会有新的空文件夹:

Empty Folder

     Empty Folder

          Empty Folder

               Empty Folder

Folder

Folder

...
Run Code Online (Sandbox Code Playgroud)

在这种情况下,只会删除最后一个空文件夹,但是会再次出现一个空文件夹.为此我需要计算最大目录深度(在这种情况下3 - >因为三个子目录结构).如果我有这个深度,我可以运行删除过程x(dir-depth)次.如何在Windows批处理编程中获取目录深度?

windows directory recursion cmd batch-file

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