我是角度2的初学者,我有这个脚本,我需要在angular2项目中集成以从odoo获取一些数据:
const Odoo = require('odoo-connect');
const odoo = new Odoo({
host: 'demo',
port: 80
});
var project_list = [];
odoo.connect({
database: 'database',
username: 'admin',
password: 'admin'
})
.then(client => {
return client.call('project.project', 'search_read', [], {});
})
.then(projects => {
for (var i = 0; i < projects.length; i++) {
var project = projects[i];
project_list.push(project['name'])
}
console.log(project_list);
});
我只是想在一个简单的页面中显示数据,只是为了测试它,然后将它包含在主项目中。我尝试使用Angular-CLI和app.component.ts构建试用项目:
import {Component } from '@angular/core';
import { OnInit } from '@angular/core';
import { Input } from '@angular/core';
import * as connect from 'odoo-connect';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
})
export class AppComponent implements OnInit{
private host:string;
private port:number;
@Input() project_list;
constructor(){
this.host='demo';
this.port=80;
}
ngOnInit(){
let project_list : Array<any> = [];
const odoo = new connect({
host: 'demo9',
port: 80
});
odoo.connect({
database: 'database',
username: 'admin',
password: 'admin'
})
.then((client:any) => {
return client.call('project.project', 'search_read', [], {});
})
.then((projects:any) => {
for (let i = 0; i < projects.length; i++) {
let project = projects[i];
project_list.push(project['name'])
}
console.log(project_list);
})
}}
我在我的控制台中得到这个:webpack:编译成功,但在浏览器控制台中我得到了这个: 未捕获的TypeError:无法读取属性&#39; prototype&#39;未定义的
答案 0 :(得分:0)
经过几次这样的讨论后,我无法在Angular 2中直接安装odoo-connect npm软件包。我尝试了所有我知道该怎么做并且接近但最终被一个人击败了JSONStream错误,意味着我可能需要一种不同类型的加载器,这意味着我可能需要修改webpack配置......呃。只有这么多时间在一个早晨。
然而,这个NPM包的工作方式与宣传的一样:
https://www.npmjs.com/package/angular2-odoo-jsonrpc
有一个例外:在完成注入的构造函数中:
constructor ( oodo : OodoRpcConnect )
确保包含&#34; private&#34;
constructor ( private oodo : OodoRpcConnect )
让红色的波浪消失。
否则我按照说明安装/使用完全按照他们的指示,它工作正常。
因此...
我正在使用最新最好的Angular-CLI(今天升级)。如果您认为您的CLI可能已过期,请更新它:
https://www.npmjs.com/package/angular-cli#updating-angular-cli
答案 1 :(得分:0)
const Odoo = require('odoo-connect'); const odoo = new Odoo({ 主持人:'demo', 港口:80 });
var project_list = [];
odoo.connect({ 数据库:'DB', 用户名:'admin', 密码:'admin' }) .then(client =&gt; { return client.call('project.project','search_read',[],{}); }) .then(projects =&gt; { for(var i = 0; i&lt; projects.length; i ++){ var project = projects [i]; project_list.push(项目[ '名称']) } 的console.log(project_list); });