小编Bra*_*don的帖子

扩展 BaseRequestOptions 时注入的依赖项未定义

BaseRequestOptions在 Angular2 中进行扩展,为每个请求添加标头。我还有一个Config基于域提供键/值对的类,我需要将其注入到我的派生类中:

import { BaseRequestOptions } from '@angular/http';
import { Config } from '../../config/configuration';

export class DefaultRequestOptions extends BaseRequestOptions {
  constructor(private config: Config) {
    super();

    Object.keys(this.config.api.headers).map((key) => {
      this.headers.append(key, this.config.api.headers[key]);
    });
  }
}
Run Code Online (Sandbox Code Playgroud)

在我的模块中,我这样指定提供者:

@NgModule({
  . . .,
  providers: [
    . . .,
    { provide: RequestOptions, useClass: DefaultRequestOptions }
  ]
})
. . .
Run Code Online (Sandbox Code Playgroud)

我遇到的问题this.configundefinedDefaultRequestOptions. 我还将该类用作Config其他类中的注入依赖项,因此我相信它会按预期工作,并且如果我手动设置所有内容的值,this.headers一切都会正常工作。

我做错了什么会导致配置未定义DefaultRequestOptions

dependency-injection typescript angular

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

通过urls.py将"next"传递给django登录模板

我正在尝试使用此代码通过urls.py文件将"next"字段传递给我的login.html模板

这很好用:

urls((r'^login/$', 'django.contrib.auth.views.login',
    {'template_name': 'myapp/login.html'}),
Run Code Online (Sandbox Code Playgroud)

但我不希望登录后我的重定向转到'/ accounts/profile /'页面,我想转到网站根目录'/'.

url(r'^login/$', 'django.contrib.auth.views.login',
    {'template_name': 'login.html', 'next':'/'}),
Run Code Online (Sandbox Code Playgroud)

但我明白了

login() got an unexpected keyword argument 'next'
Run Code Online (Sandbox Code Playgroud)

不知道如何通过urls函数传递'next'参数,似乎无法找到其他解决方案,任何建议?

django django-urls

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

Django - Slugs - Key(slug)=()是重复的

刚刚开始和Django闲聊,并在这里找到了关于如何创建slug 的链接.我被告知要对现有模型执行以下更改:

from django.template.defaultfilters import slugify

class Category(models.Model):
    name = models.CharField(max_length=128, unique=True)
    views = models.IntegerField(default=0)
    likes = models.IntegerField(default=0)
    slug = models.SlugField(unique=True)

    def save(self, *args, **kwargs):
        self.slug = slugify(self.name)
        super(Category, self).save(*args, **kwargs)

    def __unicode__(self):
        return self.name
Run Code Online (Sandbox Code Playgroud)

这很好用,直到我尝试使用以下方法迁移数据库:

python manage.py makemigrations
Run Code Online (Sandbox Code Playgroud)

以上问了一个默认值,所以按照指南,我给了它''.然后:

python manage.py migrate
Run Code Online (Sandbox Code Playgroud)

上面返回的"DETAIL:Key(slug)=()是重复的."

我不完全确定为什么会这样.也许是因为我正在添加一个独特的新领域,我不能用''填充它?如果是这样,我需要做什么才能填充数据库?

python django

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

验证Keystone.js中相互依赖的字段

保存项目时,我正在尝试进行验证。这是我的简化模型:

Sample.add({
    isPublished: { type: Types.Boolean, default: false },
    thumbnailImage: { type: Types.CloudinaryImage, folder: 'samples/thumbnails' },
});

Sample.schema.pre('validate', function(next) {
    if (this.isPublished && !(_.isEmpty(this.thumbnailImage.image))) {
        next('Thumbnail Image is required when publishing a sample');
    }
    else {
        next();
    }
});
Run Code Online (Sandbox Code Playgroud)

如果Sample模型isPublished设置为,truethumbnailImage尚未设置,我想提出一个错误。当我输入console.log()这些值时,我分别看到truefalse,但是在Keystone Admin中没有出现验证错误。

我浏览了Github上用于Keystone的示例应用程序,Mongoose文档中有很多示例,但是我还没有看到能够处理多个文档路径的示例。

使用2个字段(当前有12个upvotes)的猫鼬自定义验证的示例对我也不起作用。

我究竟做错了什么?我正在使用Mongoose 3.8.35。

mongoose node.js keystonejs

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

在角度布线中从堆栈中删除前一页

我是 angular 的新手,我想尝试在它上面构建我的应用程序。我只有一个普通的两页应用程序。我可以看到路由行为正常,但是我可以看到当我从键盘上按回时,我回到了登录页面。

login -> homepage,后退按钮按下 homepage -> login

现在我想从堆栈中删除登录页面,所以当我们回击键盘时,它什么也不做。就像每次访问此类页面时从堆栈中删除上一页一样。我不希望我的用户在login page没有注销的情况下返回。

主页:

//going to the home page with this click on the button 
<button type="submit" class="btn btn-primary" (click)="submit()">Submit</button>

submit(){
 (<any> window).location = '/home';
}
Run Code Online (Sandbox Code Playgroud)

对于logout,我只是在做同样的事情:

登出:

<div class="logout-link col-4">
   <a routerLink="/">Logout</a>
</div>
Run Code Online (Sandbox Code Playgroud)

到目前为止我尝试过的是这样做:

//homepage logout button
[routerlink] = "['/', {clearhistory: true}]" //This disabled the route functioning at all, I could not go to home by tapping on the logout button.

//loginpage submit button
submit(){ …
Run Code Online (Sandbox Code Playgroud)

angular

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

将额外参数传递给Express中的路由处理程序

我对Express来说比较新,而且我正在寻找一种让路由更具可重用性的方法.在我的应用程序中,我将有很多路径可以传递给通用处理程序,但会有不同的模板.

例:

app.get('/about', function(req, res) {
    res.render('about.html');
});

app.get('/', function(req, res) {
    res.render('home.html');
});
Run Code Online (Sandbox Code Playgroud)

虽然这个例子很懊悔,但我有30多条这样的路线.我希望能做的是这样的:

app.get('/about', generic.render('about.html'));
Run Code Online (Sandbox Code Playgroud)

或以其他方式以某种方式将模板名称传递给返回的函数res.render是否可以在Express中使用?我尝试解决此问题的所有尝试都导致变量未定义.

我宁愿不做这样的事情,紧密耦合我的路线参数和模板名称:

app.get('/:template', function(req, res) {
    res.render(req.params.template + '.html');
});
Run Code Online (Sandbox Code Playgroud)

node.js express

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

样式Django表单错误消息

我正在尝试将django形式的defa错误设为红色和粗体。例如,将“此字段必填”设为红色和粗体。我看到error_css_class ='错误',但它不起作用。 https://docs.djangoproject.com/zh-CN/1.5//ref/forms/api/#django.forms.Form.error_css_class 谢谢!这是我的模型

class RegiForm(forms.Form):
    error_css_class = 'error'
    DateInput = partial(forms.DateInput, {'class': 'datepicker'})
    email = forms.EmailField(max_length=75)
    first_name = forms.CharField(max_length=25)
    last_name = forms.CharField(max_length=25)
    address = forms.CharField(max_length=200)
Run Code Online (Sandbox Code Playgroud)

这是我的模板:

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>RegistrationForm</title>
    </head>
    <body>
        <h1>Registration Form</h1>
        <form action="/login/regi/" method="POST">
            {% csrf_token %}
            {{ form.as_p }}
            <input type="submit" value="Submit" />
        </form>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

django django-templates django-forms

0
推荐指数
4
解决办法
5272
查看次数