【发布时间】:2017-03-18 07:22:58
【问题描述】:
我搜索了解决方案,但没有找到答案。我的问题是什么,在我的类别视图中,我有 init 函数,它发出 http 请求并从数据库中获取所有类别。我使用这些记录并制作 ng-repeat。但是,当我打开带有表单的模态以创建新类别时,当模态关闭并查看新类别时,我无法更新该 ng-repeat 视图。我以这种方式组织我的控制器、服务和视图:
查看
<div class="row main-body no-padding" ng-init="adminCtr.initCategory()">
<div class="col-lg-4 margin-bottom-20" ng-repeat="category in adminCtr.allCategories">
<div class="header-panel">
<span class="category-headline">{{category.name}}</span>
</div>
<div class="main-form">
{{category.id_cat}}
</div>
</div>
</div>
控制器:
function addCategory() {
$mdDialog.show({
templateUrl: 'app/views/modal/addCategory.html',
clickOutsideToClose: false,
controller: 'adminController',
controllerAs: 'adminCtr'
});
}
function initCategory() {
adminService.initCategory().then(function (data) {
vm.allCategories = data.categories;
})
}
function createCategory(category) {
adminService.createCategory(category).then(function (data) {
if(data.success == false) {
vm.categoryError = data.error;
} else {
vm.categoryError = '';
cancelModal();
initCategory();
$location.path('/admin/category');
$timeout(function () {
$mdToast.show(
$mdToast.simple()
.textContent('Kategorija je uspešno kreirana')
.position('top right')
.theme("success-toast")
.hideDelay(5000)
);
}, 500);
}
})
}
function cancelModal() {
$mdDialog.hide();
}
服务:
function createCategory(category) {
return $http.post('api/admin/createCategory', {
category: category,
idUser: $rootScope.globals.currentUser.idUser,
token: $rootScope.globals.currentUser.token
}).then(function(response) {
return response.data;
});
}
function initCategory() {
return $http.post('api/admin/getAllCategories', {
idUser: $rootScope.globals.currentUser.idUser,
token: $rootScope.globals.currentUser.token
}).then(function(response) {
return response.data;
});
}
我尝试再次调用 init 函数来更新 vm.allCategories 但没有任何成功。
有人知道解决办法吗?
附:我尝试使用 $scope.apply() 但出现错误,顺便说一句,我使用 angular 1.6.2。
【问题讨论】:
-
你能创建一个最小的工作 plnkr/jsbin/jsfiddle 吗?阅读mcve
-
data.category 包含什么?你能告诉我们示例数组/对象格式吗?
-
{"categories":[{"id_cat":"1","name":"fgfdgfd"},{"id_cat":"2","name":"dfgfdgdf"}, {"id_cat":"3","name":"dfgfdgdffdgdfg"},{"id_cat":"4","name":"dfgfdgdfg"},{"id_cat":"5","name":" dfdsfsdfsdfsd"},{"id_cat":"6","name":"sdfdsfsdfsdfsdfsd"},{"id_cat":"7","name":"dfgfdgfgfgfdgdf"}],"success":true}
-
只是名称和id类别
-
完全正确,我想避免刷新页面
标签: javascript angularjs angularjs-scope angularjs-ng-repeat