我正在学习angular2和打字稿,并想知道为什么我无法访问模板中对象的属性值.
我的组件:
export class Farm{
data:JSON;
id: any;
constructor(private nextService: NextService, navParams: NavParams){
this.id = navParams.get("param1");
}
getFarmDetails(){
this.data = this.nextService.fetchData(this.id)
console.log(this.data)
}
}
Run Code Online (Sandbox Code Playgroud)
console.log(this.data)给我的地方 Object {id: 1, name: "Leanne Graham", username: "Bret", email: "Sincere@april.biz", address: Object…}
在我的模板中,我有
<div>
{{data}}
</div>
Run Code Online (Sandbox Code Playgroud)
在我的屏幕上输出[object Object]
我怎样才能输出电子邮件或用户名等属性?
更新:如果我喜欢{{data.email}}我收到以下错误:
我最近在阅读有关域驱动设计(DDD)的文章,我喜欢这个概念,尤其是Onion体系结构的构想(https://www.youtube.com/watch?v=pL9XeNjy_z4)。
我很想知道我们如何使用Django Rest Framework实现这种架构,或者换句话说,我们可以使用Onion arch风格的Django rest框架进行DDD吗?
作为示例,我以以下方式编写DRF代码:
在models.py中,我将定义模型:
class Library(models.Model):
library_id = models.AutoField(primary_key=True)
name = models.CharField(max_length=30)
...
#This helps to print in admin interface
def __str__(self):
return u"%s" % (self.name)
Run Code Online (Sandbox Code Playgroud)
在serializers.py中,我将使用模型序列化器:
class LibrarySerializer(serializers.ModelSerializer):
class Meta:
model = Library
fields = '__all__'
Run Code Online (Sandbox Code Playgroud)
我将在urls.py中有相应的url:
router.register(r'libraries', LibraryViewSet)
Run Code Online (Sandbox Code Playgroud)
并在views.py中执行CRUD操作:
class LibraryViewSet(viewsets.ModelViewSet):
queryset = Library.objects.all()
serializer_class = LibrarySerializer
Run Code Online (Sandbox Code Playgroud)
这与DDD / Onion体系结构有什么关系(可能进行了适当的修改)?
django domain-driven-design onion-architecture django-rest-framework
在我的模板中:
<h5>Image upload</h5>
<input type="file" accept="image/*" (change)="changeListener($event)">
<div *ngIf="image">
<img [src]="'data:image/jpg;base64,' +image | safeHtml">
</div>
Run Code Online (Sandbox Code Playgroud)
在我的控制器中:
image: string='';
changeListener($event) : void {
this.readThis($event.target);
}
readThis(inputValue: any): void {
var file:File = inputValue.files[0];
var myReader:FileReader = new FileReader();
myReader.onloadend = (e) => {
this.image = myReader.result;
console.log(this.image)
}
myReader.readAsDataURL(file);
}
Run Code Online (Sandbox Code Playgroud)
safeHtml 是一个管道:
@Pipe({name: 'safeHtml'})
export class SafeHtml {
constructor(private sanitizer:DomSanitizer){}
transform(html) {
return this.sanitizer.bypassSecurityTrustResourceUrl(html);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,上传图像后ERR_INVALID_URL出现错误。不过,我可以在我的开发人员控制台中看到 base64 字符串。出了什么问题?
我已经克隆了这个源代码(https://code.msdn.microsoft.com/Onion-Architecture-In-9c58c06d)。我正在使用 mysql 和我的连接字符串
"ConnectionStrings": {
"DefaultConnection": "server=localhost;userid=root;pwd=root;port=3306;database=ddd;sslmode=none;"
},
Run Code Online (Sandbox Code Playgroud)
Add-Migration FirstMigration然而,在我的包管理器控制台命令成功了,Update-Database正在抛出我
System.ArgumentException: Keyword not supported: 'userid'.
at System.Data.Common.DbConnectionOptions.ParseInternal(Dictionary`2 parsetable, String connectionString, Boolean buildChain, Dictionary`2 synonyms)
at System.Data.Common.DbConnectionOptions..ctor(String connectionString, Dictionary`2 synonyms)
at System.Data.SqlClient.SqlConnectionString..ctor(String connectionString)
at System.Data.SqlClient.SqlConnectionFactory.CreateConnectionOptions(String connectionString, DbConnectionOptions previous)
at System.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup(DbConnectionPoolKey key, DbConnectionPoolGroupOptions poolOptions, DbConnectionOptions& userConnectionOptions)
at System.Data.SqlClient.SqlConnection.ConnectionString_Set(DbConnectionPoolKey key)
at System.Data.SqlClient.SqlConnection.set_ConnectionString(String value)
at Microsoft.EntityFrameworkCore.Storage.Internal.SqlServerConnection.CreateDbConnection()
at Microsoft.EntityFrameworkCore.Internal.LazyRef`1.get_Value()
at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration)
at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(String targetMigration, String contextType)
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase.<>c__DisplayClass0_1.<.ctor>b__0()
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
Keyword not supported: 'userid'.
Run Code Online (Sandbox Code Playgroud)
难道我做错了什么?
我在我的django项目中使用Django-rest-auth(https://github.com/Tivix/django-rest-auth)进行登录和注册.我看到一个默认的注册表格如下:
目前,我可以使用电子邮件而不是用户名注册新用户.我的MySql数据库中的默认auth_user表包含以下列:(id,password,last_login,is_superuser,username,first_name,last_name,email,is_staff,is_active,date_joined)
我的settings.py:
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
'rest_framework',
#Rest-auth
'rest_framework.authtoken',
'rest_auth',
#Rest-auth registration
'allauth',
'allauth.account',
'rest_auth.registration',
#Following is added to allow cross domain requests i.e. for serving requests those are coming from frontend app
'corsheaders',
'flights',
)
Run Code Online (Sandbox Code Playgroud)
我想修改我的注册表单,使其具有上面字段的名字和姓氏,这样当我注册一个新用户时,这两列也会填充first_name和last_name.目前我没有其他注册视图或任何自定义用户模型,我只是使用django-rest-auth提供的API端点.
我怎样才能做到这一点?
django django-rest-framework django-allauth django-rest-auth
我已经使用django-rest-auth在django应用中实现了auth。我在settings.py中的设置:
ALLOWED_HOSTS = []
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'rest_framework.authtoken',
'rest_auth',
'django.contrib.sites',
'allauth',
'allauth.account',
'rest_auth.registration',
'corsheaders',
'rest_framework_docs',
'tasks'
]
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF = 'urls'
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_CREDENTIALS = True
ALLOWED_HOSTS = ['*']
SITE_ID = 1
Run Code Online (Sandbox Code Playgroud)
我是从前端登录的-我已收到令牌并将其存储在本地存储中。现在,我发出一个简单的GET请求,如下所示:
getTasks(): Observable<Task[]> {
let headers = new Headers({ 'Access-Control-Allow-Origin': '*' });
let options = new RequestOptions({ headers: headers, withCredentials: true });
return this.http.get(this.taskUrl, options)
.map(this.extractData) …Run Code Online (Sandbox Code Playgroud) 我使用react-table生成表(https://react-table.js.org/#/story/readme).我的状态定义如下:
this.state = {
sampleTable:[
{author: 'Mac', books: [{title:'One', price: 20}, {title:'Two', price: 20}]},
{author: 'Rick', books: [{title:'Three', price: 20}, {title:'Four', price: 20}]}
],
sampleTableColumns:[
{Header: 'Author', accessor: 'author'},
{Header: 'Books', accessor: 'books.title'},
],
};
Run Code Online (Sandbox Code Playgroud)
我正在尝试制作如下表格:
<ReactTable
className="-highlight"
data={this.state.sampleTable}
columns={this.state.sampleTableColumns}
defaultPageSize={10}
/>
Run Code Online (Sandbox Code Playgroud)
然而在书籍专栏中,我什么也看不见.我不知道我应该如何迭代书籍数组,以便我可以在书籍专栏中打印出书名?
我有两个模型:图书馆和一本书。图书馆将有很多书。
class Library(models.Model):
library_id = models.AutoField(primary_key=True)
name = models.CharField(max_length=30)
city = models.CharField(max_length=30)
address = models.CharField(max_length=80)
phone = models.CharField(max_length=30, blank=True, null=True)
website = models.CharField(max_length=60, blank=True, null=True)
class Book(models.Model):
book_id = models.AutoField(primary_key=True)
title = models.CharField(max_length=30)
# A library has many books
which_library = models.ForeignKey('Library', related_name='books', on_delete=models.CASCADE)
reader = models.ManyToManyField('Reader', related_name='wishlist')
Run Code Online (Sandbox Code Playgroud)
我的序列化器:
class LibrarySerializer(serializers.ModelSerializer):
class Meta:
model = Library
fields = '__all__'
class BookSerializer(serializers.ModelSerializer):
wishlist = ReaderSerializer(many=True, read_only=True)
class Meta:
model = Book
fields = '__all__'
Run Code Online (Sandbox Code Playgroud)
我的看法是:
class LibraryViewSet(viewsets.ModelViewSet):
queryset = Library.objects.all()
serializer_class …Run Code Online (Sandbox Code Playgroud) 不是重复:我的Update()方法有两个争论:id和修改后的实体,提供给我的问题的答案有不同的方法CurrentValues,现有问题没有涉及.
我是ASP.Net核心开发的新手.我正在使用MySql作为数据库和Book模型构建一个简单的API.
我写了我的控制器如下:
[Route("api/[controller]")]
public class BooksController : Controller
{
private readonly IBookRepository _books;
public BooksController(IBookRepository books)
{
_books = books;
}
[HttpGet("")]
public IActionResult GetAllBooks()
{
try
{
List<Book> books = _books.GetAllBooks();
return Ok(books);
}
catch(EntityNotFoundException<Book>)
{
return NotFound();
}
}
[HttpGet("{id}")]
public IActionResult GetBook(long id)
{
Book book = _books.GetBook(id);
if (book == null)
{
return NotFound();
}
return Ok(book);
}
[HttpPost]
public IActionResult CreateBook([FromBody] Book book)
{
if (ModelState.IsValid == false)
{
return BadRequest(ModelState); …Run Code Online (Sandbox Code Playgroud) 我有一个如下所示的数组:
causes: any= [
{
'Specification': {
'Missing':false,
'Unclear':false,
'Wrong':false,
'Changed':false,
'Better Way':false,
},
'Design': {
'Missing':false,
'Unclear':false,
'Wrong':false,
'Changed':false,
'Better Way':false,
},
'Code': {
'Missing':false,
'Unclear':false,
'Wrong':false,
'Changed':false,
'Better Way':false,
},
'Documentation': {
'Missing':false,
'Unclear':false,
'Wrong':false,
'Changed':false,
'Better Way':false,
},
}]
Run Code Online (Sandbox Code Playgroud)
如何在我的模板中迭代它?我试过类似的东西:
<div class="mdl-grid">
<div *ngFor=" let chunk of causes | chunks: 2; let j = index; " class="mdl-cell mdl-cell--4-col">
<label *ngFor=" let cause of chunk| values " #checkbox class="mdl-checkbox mdl-js-checkbox">
<input type="checkbox" name="causes" class="mdl-checkbox__input">
<span class="mdl-checkbox__label">{{cause}}</span>
</label>
</div> …Run Code Online (Sandbox Code Playgroud) 我有一个数组如下:
public taskListCustom: any=[
{title: 'Task 1', status: 'done'},
{title: 'Task 2', status: 'done'},
{title: 'Task 3', status: 'done'},
{title: 'Task 4', status: 'done'},
{title: 'Task 5', status: 'done'},
{title: 'Task 6', status: 'done'},
{title: 'Task 7', status: 'done'},
{title: 'Task 8', status: 'done'},
{title: 'Task 9', status: 'done'},
{title: 'Task 10', status: 'done'},
{title: 'Task 11', status: 'done'},
{title: 'Task 12', status: 'done'},
{title: 'Task 13', status: 'done'},
{title: 'Task 14', status: 'done'},
{title: 'Task 15', status: 'done'},
{title: …Run Code Online (Sandbox Code Playgroud) 我有一个数组: hobbies=['Reading','Sport','Travelling','Movies','Cooking','Singing'];
现在我正在模板中手动填充它:
<div class="my-checkbox">
<!-- Hobbies -->
<span style="float: left; width: 100px;"><h5>Hobbies</h5></span>
<div class="mdl-grid">
<div class="mdl-cell mdl-cell--4-col">
<label #checkbox_1 class="mdl-checkbox mdl-js-checkbox" for="checkbox-1">
<input type="checkbox" id="checkbox-1" name="hobbies" value="sport"
class="mdl-checkbox__input" >
<span class="mdl-checkbox__label">Sports</span>
</label>
<label #checkbox_2 class="mdl-checkbox mdl-js-checkbox" for="checkbox-2">
<input type="checkbox" id="checkbox-2" name="hobbies" value="reading" class="mdl-checkbox__input">
<span class="mdl-checkbox__label">Reading</span>
</label>
</div>
<div class="mdl-cell mdl-cell--4-col">
<label #checkbox_3 class="mdl-checkbox mdl-js-checkbox" for="checkbox-3">
<input type="checkbox" id="checkbox-3" name="hobbies" value="singing"
class="mdl-checkbox__input">
<span class="mdl-checkbox__label">Singing</span>
</label>
<label #checkbox_4 class="mdl-checkbox mdl-js-checkbox" for="checkbox-4">
<input type="checkbox" id="checkbox-4" name="hobbies" value="travelling"
class="mdl-checkbox__input">
<span class="mdl-checkbox__label">Travelling</span>
</label>
</div> …Run Code Online (Sandbox Code Playgroud) 我有 django rest 应用程序和一个模型任务。我对自然处理完全陌生,我想构建一个返回名词和动词列表的函数。它看起来像这样:
@api_view(['GET'])
def noun_verb_list(request):
nouns = []
verbs = []
"""
List all nouns and verbs from available tasks
"""
if request.query_params.get('projectId'):
# get a specific project
projectId = request.query_params.get('projectId')
project = Project.objects.get(id=projectId)
tasks = project.project_tasks.all()
# extract nouns and verbs from tasks here
return Response(# return appropriate nouns)
Run Code Online (Sandbox Code Playgroud)
有人可以帮我建立这个功能吗?导入什么和逻辑?
angular ×6
django ×5
asp.net-core ×2
typescript ×2
.net-core ×1
javascript ×1
nltk ×1
reactjs ×1