Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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-$routeProvider和resolve不自动更新视图_Angularjs_Mongodb_Express - Fatal编程技术网

AngularJS-$routeProvider和resolve不自动更新视图

AngularJS-$routeProvider和resolve不自动更新视图,angularjs,mongodb,express,Angularjs,Mongodb,Express,我在$routeProvider中获取自动更新视图的解析时遇到问题 我试图将亚当·弗里曼(Adam Freeman)的《角度论》一书中的一个例子(第22章)从Deployd转换为ExpressMongo。一个可能的提示是,自动刷新使用部署的本地版本工作。当我切换到本地Express和Mongo后端时(在将id更改为_id之后),自动视图更新不再工作 使用ExpressMongo时,我必须手动执行$route.reload()函数,以显示数据库中更新的更改。我是新来的,所以任何提示都很感激 这项严

我在$routeProvider中获取自动更新视图的解析时遇到问题

我试图将亚当·弗里曼(Adam Freeman)的《角度论》一书中的一个例子(第22章)从Deployd转换为ExpressMongo。一个可能的提示是,自动刷新使用部署的本地版本工作。当我切换到本地Express和Mongo后端时(在将id更改为_id之后),自动视图更新不再工作

使用ExpressMongo时,我必须手动执行$route.reload()函数,以显示数据库中更新的更改。我是新来的,所以任何提示都很感激

这项严厉的删除工作:

$scope.deleteProduct = function (product) {
    product.$delete();
    $route.reload();
    $location.path("/list");
}
下面的版本不起作用。我的印象是($routeProvider中的'resolve'属性会在返回数据时更新视图,这可能是错误的)。使用下面的代码,我得到一个类型错误:Undefined不是一个函数

 $scope.deleteProduct = function (product) {
        product.$delete().then(function () {
            $scope.data.products.splice($scope.data.products.indexOf(product), 1);
});
        $location.path("/list");
}
控制台日志错误

TypeError: undefined is not a function
    at http://localhost:8080/bower_components/angular-resource/angular-resource.js:530:25
    at Array.forEach (native)
    at forEach (http://localhost:8080/bower_components/angular/angular.js:302:11)
    at angular.module.factory.Resource.(anonymous function).$http.then.value.$resolved (http://localhost:8080/bower_components/angular-resource/angular-resource.js:529:17)
    at deferred.promise.then.wrappedCallback (http://localhost:8080/bower_components/angular/angular.js:10905:81)
    at deferred.promise.then.wrappedCallback (http://localhost:8080/bower_components/angular/angular.js:10905:81)
    at http://localhost:8080/bower_components/angular/angular.js:10991:26
    at Scope.$get.Scope.$eval (http://localhost:8080/bower_components/angular/angular.js:11906:28)
    at Scope.$get.Scope.$digest (http://localhost:8080/bower_components/angular/angular.js:11734:31)
    at Scope.ng.config.$provide.decorator.$delegate.__proto__.$digest (<anonymous>:844:31) angular.js:9383
绑定到$routeProvider的表视图控制器。否则

.controller("tableCtrl", function ($scope, $location, $route, data) {
    $scope.data.products = data;
    $scope.refreshProducts = function () {
        $route.reload();
} })

我认为删除完成后,您应该重定向:

$scope.deleteProduct = function (product) {
    product.$delete().then(function () {
        $scope.data.products.splice($scope.data.products.indexOf(product), 1);
        $location.path("/list");
    });
}

您在与文本行的和处漏掉了}:

delete: {method: "DELETE", isArray: true

感谢您如此快速的响应:)通过上面的代码,我仍然在angular.module.factory.Resource(匿名函数)的forEach()的Array.forEach(本机)上得到相同的“TypeError:undefined不是函数错误”。$http.then.value.$resolved()在deferred.promise.then.wrappedCallback…..删除以下行:
$scope.data.products.splice($scope.data.products.indexOf(product),1)和检查结果我删除了上面的一行,仍然得到相同的“TypeError:undefined不是函数错误”我修复了愚蠢的打字错误:delete:{method:“delete”,isArray:true},不幸的是,我得到的是相同的TypeError:undefined不是函数。行末尾还有一个类型:query:{method:“GET”,isArray:true}(double}).factory(“productsResource”,函数($resource,baseUrl){return$resource(baseUrl+”:id“,{id:@_id”},{create:{method:“POST”,isArray:true},save:{method:“PUT”,isArray:true},delete:{method:“delete”,isArray:true},更新:{method:“PUT”,isArray:true},query:{method:“GET”,isArray:true})更改后-您有什么样的错误?很抱歉延迟。我仍然收到相同的错误:TypeError:undefined不是函数。我还编辑了上面的原始代码以反映更改
delete: {method: "DELETE", isArray: true