我正在嘗試創建一個Angular應用程序作爲API的客戶端,它需要使用Progress JSDO與OpenEdge數據通過業務實體進行交互。我對Angular開發非常陌生,但我對Progress JSDO相當熟悉,所以我有一種感覺,我的問題根源在於如何包含項目的進展。使用Progress JSDO和Angular CLI項目
我發現這個例子,我相信這是過時:
同樣的,這個PUG挑戰PDF:
這裏是我的代碼使用與JSDO交互:
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/fromPromise';
import 'rxjs/add/operator/map';
import { progress } from 'jsdo';
import { PriceResponse } from './oo-price-response';
import { OOProduct } from './oo-product';
//Products JSDO service
@Injectable()
export class OEWebPriceService {
private tableName: string = 'Products';
private jsdo: any;
constructor() {
const serviceURI = 'myServiceURI';
const catalogURI = 'myCatalogURI';
let session = new progress.data.JSDOSession({ serviceURI: serviceURI });
session.login('devono|ulfoods.com','devono')
.then(() => {
session.addCatalog(catalogURI);
});
let productJSDO = new progress.data.JSDO({ name: 'Products' });
this.jsdo = productJSDO;
}
public getPrices(): Observable<OOProduct[]> {
return this.fetch();
}
private fetch(): Observable<OOProduct[]> {
let ttPrices=[];
let params = {
accountNumber: "945873",
ttPrice: {
ttPrice: [
{ seq: 0, productCode: "152709"},
{ seq: 1, productCode: "717141"},
{ seq: 2, productCode: "152711"}
]
},
userLoginID: "devono|ulfoods.com"
};
let prodPromise = new Promise((resolve, reject) => {
this.jsdo.invoke("GetPrices", params)
.done((jsdo: any, success: any, request: any) => {
ttPrices = request.response.ttPrice.ttPrice;
resolve(ttPrices);
})
});
let result = Observable.fromPromise(prodPromise);
return result;
}
}
此代碼在Sublime中查找文件,TypeScript識別所有類型和方法等,並且所有編譯都很好。然而,在瀏覽器中我從Chrome開發人員工具的錯誤消息:
我覺得進展找不到jQuery的,即使jQuery的來到右邊伴隨着它,當我安裝了JSDO到我的項目通過npm。我錯過了一個步驟嗎?有沒有人成功地將JSDO包含在一個可以佈置步驟的Angular項目中?
我會嘗試在Plunker或其他東西上得到一個實例,但我不知道該怎麼做,所以希望現在就足夠了。
在此先感謝!
這正是我需要的!我就像你說的那樣,在angular-cli.json中缺少腳本引用,我遵循這個例子,它工作得很好。謝謝! – DevonOsh