我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.config是undefined在DefaultRequestOptions. 我还将该类用作Config其他类中的注入依赖项,因此我相信它会按预期工作,并且如果我手动设置所有内容的值,this.headers一切都会正常工作。
我做错了什么会导致配置未定义DefaultRequestOptions?
我正在尝试使用此代码通过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闲聊,并在这里找到了关于如何创建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)=()是重复的."
我不完全确定为什么会这样.也许是因为我正在添加一个独特的新领域,我不能用''填充它?如果是这样,我需要做什么才能填充数据库?
保存项目时,我正在尝试进行验证。这是我的简化模型:
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设置为,true但thumbnailImage尚未设置,我想提出一个错误。当我输入console.log()这些值时,我分别看到true和false,但是在Keystone Admin中没有出现验证错误。
我浏览了Github上用于Keystone的示例应用程序,Mongoose文档中有很多示例,但是我还没有看到能够处理多个文档路径的示例。
使用2个字段(当前有12个upvotes)的猫鼬自定义验证的示例对我也不起作用。
我究竟做错了什么?我正在使用Mongoose 3.8.35。
我是 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) 我对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) 我正在尝试将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 ×3
angular ×2
node.js ×2
django-forms ×1
django-urls ×1
express ×1
keystonejs ×1
mongoose ×1
python ×1
typescript ×1