Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Angular CLI项目中使用Progress JSDO_Angular_Rest_Angular Cli_Openedge_Progress 4gl - Fatal编程技术网

在Angular CLI项目中使用Progress JSDO

在Angular CLI项目中使用Progress JSDO,angular,rest,angular-cli,openedge,progress-4gl,Angular,Rest,Angular Cli,Openedge,Progress 4gl,我正在尝试创建一个Angular应用程序作为API的客户端,该API需要使用Progress JSDO通过业务实体和OpenEdge数据交互。我对Angular development非常陌生,但我对JSDO的进度相当熟悉,所以我觉得我的问题根源于如何将项目的进度包括在内 我发现了这个我认为已经过时的例子: 与此哈巴狗挑战相同PDF: 下面是我正在使用的与JSDO交互的代码: import { Injectable } from '@angular/core'; import

我正在尝试创建一个Angular应用程序作为API的客户端,该API需要使用Progress JSDO通过业务实体和OpenEdge数据交互。我对Angular development非常陌生,但我对JSDO的进度相当熟悉,所以我觉得我的问题根源于如何将项目的进度包括在内

我发现了这个我认为已经过时的例子:

与此哈巴狗挑战相同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;
    }
}
从'@angular/core'导入{Injectable};
从“rxjs/Observable”导入{Observable};
导入“rxjs/add/observable/fromPromise”;
导入'rxjs/add/operator/map';
从'jsdo'导入{progress};
从“/oo价格响应”导入{PriceResponse};
从“/oo产品”导入{OOProduct};
//产品JSDO服务
@可注射()
导出类OEWebPriceService{
私有tableName:string='Products';
私人jsdo:任何;
构造函数(){
const serviceURI='myServiceURI';
const catalogri='mycatalogri';
让session=newprogress.data.JSDOSession({serviceURI:serviceURI});
session.login('devono | ulfoods.com','devono')
.然后(()=>{
会话.添加目录(目录RI);
});
让productJSDO=newprogress.data.JSDO({name:'Products'});
this.jsdo=productJSDO;
}
public getPrices():可见{
返回这个。fetch();
}
private fetch():可观察{
让ttPrices=[];
设params={
账号:“945873”,
TTP价格:{
TTP价格:[
{seq:0,产品代码:“152709”},
{seq:1,产品代码:“717141”},
{seq:2,产品代码:“152711”}
]
},
userLoginID:“devono | ulfoods.com”
};
让prodPromise=新承诺((解决、拒绝)=>{
this.jsdo.invoke(“GetPrices”,params)
.done((jsdo:any,success:any,request:any)=>{
ttPrices=request.response.ttPrice.ttPrice;
解决价格问题;
})
});
让结果=可观察。从承诺(prodPromise);
返回结果;
}
}
这段代码看起来很完美,TypeScript识别了所有类型和方法,等等,一切都编译得很好。但是,在浏览器中,我从Chrome Developer Tools收到一条错误消息:

我觉得Progress找不到jQuery,即使当我通过npm将JSDO安装到我的项目中时,jQuery也跟着出现了。有我错过的一步吗?是否有人成功地将JSDO包含在一个有角度的项目中,并且能够规划步骤

我会试着在Plunker或其他什么东西中找到一个工作的例子,但我真的不知道如何做到这一点,所以希望这就足够了


提前谢谢

这是一个工作示例


确保Jquery在angular cli中作为脚本引用。json

这是一个工作示例


确保Jquery在angular cli中被引用为脚本。json

这正是我所需要的!正如您所说,我缺少angular-cli.json中的脚本引用,我遵循了这个示例,它工作得很好。谢谢这正是我需要的!正如您所说,我缺少angular-cli.json中的脚本引用,我遵循了这个示例,它工作得很好。谢谢