2017-03-15 5 views
0

私は角2で初心者だと私はodooからいくつかのデータをフェッチするためにangular2プロジェクトに統合する必要があり、このスクリプトを持っている:Angular 2プロジェクトにjavascriptファイルを含めるにはどうすればいいですか?

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); 
    }); 
私はちょうどちょうどに簡単な一ページのデータを表示したい

WebPACKの:私は私のコンソールでこれを取得

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); 
     }) 
    }} 

:正常にコンパイルが、主なproject.Iが角-CLIとし、app.component.tsのためのトライアルプロジェクトをビルドしようとしたに含める前に、それをテスト私がこれを得るブラウザコンソールで: 未知の型エラー:未定義の 'プロトタイプ'のプロパティを読み取ることができません

+1

[別のファイルのAngular 2コンポーネントでjavascript関数を使用する方法](http://stackoverflow.com/questions/38103920/how-to-use-javascript-functions-in-an-angular -2-component-from-a-different-file) –

+0

@KobyDouek私は同じことではないと思います。 –

答えて

0

odoo-connect npmパッケージをAngular 2に直接インストールすることができませんでした。私はすべての方法を知っていましたが、近づいてしまいましたが、最終的にはJSONStreamエラー、私はおそらく私はおそらくwebpackの設定を変更する必要があることを意味ローダーの別の種類が必要です... ugh。朝はあまりにも多くの時間。

https://www.npmjs.com/package/angular2-odoo-jsonrpc

1つの例外を除いて:

しかし、このNPMパッケージが宣伝とまったく働いていた注入が行われ、コンストラクタで:

constructor (oodo : OodoRpcConnect) 

が含まれていることを確認してください "プライベート"

constructor (private oodo : OodoRpcConnect) 

赤いsquiggを作るルは去る。

それ以外の場合は、指示どおりにインストール/使用するための指示に従っていて、うまくいきました。

そう...新しいMyProjectと

  • CD MyProjectと
  • NPM ngを

    • は--save-devのangular2-odoo-JSONRPCインストールに
    • NPMは、(
    • に仕えるように、コードを変更しますパッケージの指示に記載されています)
    • 利益!

    私は最新かつ最高のAngular-CLI(今日アップグレードされた)を使用しています。あなたのCLIは古くなっている可能性が考えられる場合は、それを更新:

    https://www.npmjs.com/package/angular-cli#updating-angular-cli

  • +0

    odoo.service.ts –

    +0

    で名前 'require'を見つけることができません。CLIを使用している場合は、 odoo-connectスクリプトをangular-cli.jsonファイルの "scripts"セクションに追加してください(私の記事 "Angular 2(CLI)の外部スクリプトの使用" www.tcoz.com/#/errataを参照)。コンパイルすると、すべてうまくいけば、 "require"ステートメントを削除できるはずです(私は、今度はOdooがグローバルでなければならないと考えています)。 –

    +0

    また、これを見たいかもしれません:https://www.npmjs.com/package/angular2-odoo-jsonrpc –

    0

    のconstはOdoo =必要( 'odooコネクト・'); const odoo = new Odoo({ ホスト: 'demo'、 ポート:80 });

    var project_list = [];

    odoo.connect({ データベース 'DB' 名: '管理者'、 パスワード: '管理者' }) 。(var = 0; iのための のための){ return client.call( 'project.project'、 'search_read'、[]、{}); }) .then(projects => {< projects.length; i ++){ var project = projects [i]; project_list.push(プロジェクト['名前']) } console.log(project_list); });

    関連する問題