我已将以下属性添加到wakanda 2 / angular 4 todo教程代码中:
todoPicture: type image
当我想将图像上传到现有的待办事项时,我会得到以下内容:
todo.todoPicture.upload(file).then( result =>{
console.log('saved !')
})
文件是来自输入的文件 todo是一个有效的实体。
结果:
[Error] ERROR – TypeError: undefined is not an object (evaluating 'todo.todoPicture.upload')
TypeError: undefined is not an object (evaluating 'todo.todoPicture.upload')
error
View_TodoComponent_1 (TodoComponent.ngfactory.js:13)
logError (vendor.bundle.js:14702)
(anonymous function)
handleError (vendor.bundle.js:2375)
(anonymous function) (vendor.bundle.js:10527)
(anonymous function) (vendor.bundle.js:20184)
onInvokeTask (vendor.bundle.js:5176)
runTask (polyfills.bundle.js:2809)
invokeTask (polyfills.bundle.js:3116)
invokeTask (polyfills.bundle.js:4157)
globalZoneAwareCallback (polyfills.bundle.js:4183)
[Error] ERROR CONTEXT – DebugContext_ {view: Object, nodeIndex: 9, nodeDef: Object, …}
DebugContext_ {view: Object, nodeIndex: 9, nodeDef: Object, elDef: Object, elView: Object, …}DebugContext_
error
View_TodoComponent_1 (TodoComponent.ngfactory.js:13)
logError (vendor.bundle.js:14702)
(anonymous function)
handleError (vendor.bundle.js:2380)
(anonymous function) (vendor.bundle.js:10527)
(anonymous function) (vendor.bundle.js:20184)
onInvokeTask (vendor.bundle.js:5176)
runTask (polyfills.bundle.js:2809)
invokeTask (polyfills.bundle.js:3116)
invokeTask (polyfills.bundle.js:4157)
globalZoneAwareCallback (polyfills.bundle.js:4183)
将todo打印到控制台时,我可以查看所有其他属性,但不能显示todoPicture。
首先创建新的Todo项目时是否需要初始化todoPicture属性。
目前我只有: ``` 让todo = ds [' Todo']。create({ label:this.newTodoText, 完成:false,
});
todo.save().then(() => {
//alert('saved');
this.todos.push({
ID: todo['ID'],
label: this.newTodoText,
completed: false,
});
this.newTodoText = "";
this.getTodos()
});
```
PS:您宁愿回复解决方案而不是低估。这将更具建设性。或至少写一条评论为什么你认为你需要downvote。那会让我有机会改进我的问题。
答案 0 :(得分:0)
看起来您已将{todoPicture图像属性添加到https://wakanda.github.io/doc/#/tutorial?section=main-todoangular的教程中。
以下是一些调试此建议的建议:
请使用Backend Image Attribute access进行第一次测试,以查看您的数据存储区中是否有图像属性。如果是这样,请使用数据存储区API创建一些实体,并查看是否可以使用find()或query()在客户端访问它们。
我认为图片upload()需要数据库中的现有实体,这意味着在调用image属性的upload()之前需要完成代码todo.save()。
请使用find()在已保存的实体上调用upload()进行测试,看看它是否适用于todoPicture属性。