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