使用breeze获取错误 - 'structuralTypeName'参数必须是'string'

时间:2014-04-21 17:51:33

标签: angularjs breeze

我正在通过John Papa的SPA课程进行复数运动,我遇到了错误的问题,即结构类型名称'参数必须是'字符串'在使用微风的同时。这是抛出的实际错误

error

生成此错误的代码是metadataStore.getEntityType:

    function extendMetadata() { names
        var metadataStore = manager.metadataStore;
        var types = metadataStore.getEntityType();
        types.forEach(function(type) {
            if (type instanceof breeze.EntityType) {
                Set(type.shortName, type)
            }
        });

        function set(resourceName, entityName) {
            metadataStore.setEntityTypeForResourceName(resourceName, entityNames);
        }    

由我的主要功能调用。

    function prime() {
        if (primePromise) return primePromise  //if primePromise was loaded before, just return it

        primePromise = $q.all([getLookups()])
            .then(extendMetadata) 
            .then(success); 
        return primePromise;

        function success() { 
            setLookups();
            log('Primed the data');
        }

我不确定微风呼叫的问题是什么。任何洞察如何解决这个问题?感谢您的帮助社区。

尼克

以下是查询查询信息:

    function setLookups() {
        var entityNames = {
            personnel: 'Personnel',
            cto: 'Cto',
            kkeys: 'Kkey',
            promotion: 'Promotion',
            loa: 'Loa'
        };
        service.lookupCachedData = {
            ctos: _getAllLocal(entityNames.cto, 'ctodate' )
            kkeys: _getAllLocal(entityNames.kkeys, 'keystamp'),
            promotions: _getAllLocal(entityNames.promotion, 'pdate'),
            loas: _getAllLocal(entityNames.loa, 'lstrdte')
        }
    }

    function _getAllLocal(resource, ordering) {
        return EntityQuery.from(resource)
            .orderBy(ordering)
            .using(manager)
            .executeLocally();
    }


    function getLookups() {
        return EntityQuery.from('Lookups')
        using(manager).execute()
        .then(querySucceeded, _queryFailed)


        function querySucceeded(data) {
            log('Retrieved [Lookups] from remote data source', data, true);
            return true;
        }
    }

    function _queryFailed(error) {
        var msg = config.appErrorPrefix + 'Error retrieving data from entityquery' + error.message;
        logError(msg, error);
        throw error;
    }

1 个答案:

答案 0 :(得分:2)

您必须将字符串传递给getEntityType。对不起,我第一次错过了。

metadataStore.getEntityType('cto');

当您尝试拨打Set()功能但功能名称为set()时,您也会爆炸,并且设置可能是您尝试覆盖的关键字。< / p>