Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.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
Angularjs breezejs实体框架_Angularjs_Entity Framework_Breeze - Fatal编程技术网

Angularjs breezejs实体框架

Angularjs breezejs实体框架,angularjs,entity-framework,breeze,Angularjs,Entity Framework,Breeze,我在获取最新版本的Breeze Angular client以查询我的Breeze服务时遇到问题,该服务是使用VS2013、EF6和WebAPI2编写的 我的服务向我的端点(url)提供元数据和json;但是,我似乎在正确获取客户机设置上的dataservice.js文件时遇到了问题。只需将服务注入控制器,就会触发未定义的错误,这不是函数错误 我的代码与原始示例非常接近: 我是否遗漏了什么,似乎微风应该是简单的设置。 是否有EF6,BreezeAngular的工作示例,即WebAPI2;但是,不

我在获取最新版本的Breeze Angular client以查询我的Breeze服务时遇到问题,该服务是使用
VS2013
EF6
WebAPI2
编写的

我的服务向我的端点(url)提供元数据和
json
;但是,我似乎在正确获取客户机设置上的
dataservice.js
文件时遇到了问题。只需将服务注入控制器,就会触发未定义的错误,这不是函数错误

我的代码与原始示例非常接近:

我是否遗漏了什么,似乎微风应该是简单的设置。 是否有
EF6
BreezeAngular
的工作示例,即
WebAPI2
;但是,不是OData吗

先谢谢你

//////////////////////
//  dataservice.js  //
//////////////////////

/* dataservice: data access and model management layer 
 * relies on Angular injector to provide:
 *     $timeout - Angular equivalent of 'setTimeout'
 *     breeze - the Breeze.Angular service (which is breeze itself)
 *     logger - the application's logging facility
 */


(function() {

angular.module('app').factory('dataservice', ['$http', '$q', '$timeout', 'breeze', 'logger', dataservice]);

function dataservice( $http, $q, $timeout, breeze, logger) {

    var serviceName = 'breeze/userPortal'; // route to the same origin Web Api controller

    // *** Cross origin service example  ***
    // When data server and application server are in different origins
    //var serviceName = 'http://sampleservice.breezejs.com/api/todos/';

    var manager = new breeze.EntityManager(serviceName);
    manager.enableSaveQueuing(true);

    //REVEALING MODULE
    var service = {
        addPropertyChangeHandler: addPropertyChangeHandler,
        createuser: createuser,
        deleteuser: deleteuser,
        getusers: getusers,
        hasChanges: hasChanges,
        purge: purge,
        reset: reset,
        removePropertyChangeHandler: removePropertyChangeHandler,
        saveChanges: saveChanges
    };

    return service;

    /*** implementation details ***/

    function addPropertyChangeHandler(handler) {
        // Actually adds any 'entityChanged' event handler
        // call handler when an entity property of any entity changes
        return manager.entityChanged.subscribe(function(changeArgs) {
            var action = changeArgs.entityAction;
            if (action === breeze.EntityAction.PropertyChange) {
                handler(changeArgs);
            }
        });
    }

    function createuser(initialValues) {
        return manager.createEntity('user', initialValues);
    }

    function deleteuser(user) {
        user && user.entityAspect.setDeleted();
    }

    function getusers() {
        var query = breeze.EntityQuery
            .from("users")
            .orderBy("LastName");
    }

    var promise = manager.executeQuery(query).catch(queryFailed);
    return promise;

    function queryFailed(error) {
        logger.error(error.message, "Query failed");
        return $q.reject(error); // so downstream promise users know it failed
    }
});

function hasChanges() {
    return manager.hasChanges();
}

function handleSaveValidationError(error) {
    var message = "Not saved due to validation error";
    try { // fish out the first error
        var firstErr = error.entityErrors[0];
        message += ": " + firstErr.errorMessage;
    } catch (e) { /* eat it for now */ }
    return message;
}

function removePropertyChangeHandler(handler) {
    // Actually removes any 'entityChanged' event handler
    return manager.entityChanged.unsubscribe(handler);
}

function saveChanges() {
    return manager.saveChanges()
        .then(saveSucceeded)
        .catch(saveFailed);

    function saveSucceeded(saveResult) {
        logger.success("# of users saved = " + saveResult.entities.length);
        logger.log(saveResult);
    }

    function saveFailed(error) {
        var reason = error.message;
        var detail = error.detail;

        if (error.entityErrors) {
            reason = handleSaveValidationError(error);
        } else if (detail && detail.ExceptionType &&
            detail.ExceptionType.indexOf('OptimisticConcurrencyException') !== -1) {
            // Concurrency error 
            reason =
                "Another user, perhaps the server, " +
                "may have deleted one or all of the users." +
                " You may have to restart the app.";
        } else {
            reason = "Failed to save changes: " + reason +
                " You may have to restart the app.";
        }

        logger.error(error, reason);
        // DEMO ONLY: discard all pending changes
        // Let them see the error for a second before rejecting changes
        $timeout(function() {
            manager.rejectChanges();
        }, 1000);
        return $q.reject(error); // so downstream promise users know it failed
    }

}

//#region demo operations
function purge(callback) {
    return $http.post(serviceName + '/purge')
    .then(function () {
        logger.success("database purged.");
        manager.clear();
        if (callback) callback();
    })
    .catch(function (error) {
        logger.error("database purge failed: " + error);
        return $q.reject(error); // so downstream promise users know it failed
    });
}

function reset(callback) {
    return $http.post(serviceName + '/reset')
    .then(function () {
        logger.success("database reset.");
        manager.clear();
        if (callback) callback();
    })
    .catch(function (error) {
        logger.error("database reset failed: " + error);
        return $q.reject(error); // so downstream promise users know it failed
    });
}

//#endregion

您的函数结构不正确。您在
函数hasChanges(){
之前提前终止了
数据服务
函数。此函数及其后声明的所有函数不再在
数据服务
中定义

使用显示模块模式,您尝试将
服务.hasChanges
分配给
hasChanges
函数。但是
hasChanges
函数未在
数据服务
内部定义,而是在
数据服务
外部定义,因此分配返回
未定义
,因此错误
未定义ned不是一个函数。


移动
数据服务
函数
}的关闭块向下,以包含它的所有函数。

在我看来,此函数的一半在错误的范围内。以
函数hasChanges()开头的所有内容({
不在
数据服务
函数的范围内,这是故意的吗?请注意关闭功能块的位置
})谢谢,这确实修复了未定义的错误!我得到了一些新的错误,如果它们不是重复的,我将发布这些错误。