这是新的。
我有2个div; 当我使用一个将新值发布到服务器时,后期操作可以正常工作。
如何确保此帖更新其他div中的范围? (使用ng-repeat更新带有新条目的div)
HTTP.post操作似乎正在刷新时显示数据。
我已经尝试了$ scope.apply()但它似乎没有工作。
// this is the controller to get the data from the server
app.controller('projectsController',
function projectsController($scope, projectsFactory){
$scope.projects = projectsFactory.query();
});
和工厂从服务器获取数据
app.factory('projectsFactory',
function($resource,localStorage, $rootScope, $http){
return $resource('/api/project:id', {id: '@id'});
});
这是将用户输入和发布回服务器的控制器
app.controller('projectEditController', function($scope, projectEdit){
$scope.projectEdit = projectEdit;
});
将数据发布到服务器的服务
app.service('projectEdit',
function projectEdit(localStorage,$rootScope, $http) {
var self = this;
self.add = function(newProject,projects) {
newProject = angular.copy(newProject);
var newProject = (JSON.stringify(newProject));
return $http.post('/api/project', newProject )
.then(function(response) {
newProject.id = response.data.id;
});
};
这似乎很好,因为它将数据发布到Sever上。
我想弄清楚的是如何获得 “$ scope.projects = projectsFactory.query();”一旦后期操作完成就更新。
这将更新HTML中的显示,这是目标。
希望这对一个优秀的开发人员来说很容易解决,但我很难过! 谢谢你的时间。
康纳
答案 0 :(得分:0)
创建1个包装器div,并使用ng-controller将控制器设置为它。 把你的2个div放在包装div中。现在,控制器创建的范围在两个div中都可用,这是一种简单的方法。当某些内容更新该范围内的数据,并且您在dom中引用该变量时还有其他内容,那么dom将按您的需要刷新。 如果你真的想为每个子div使用不同的控制器,那很好,只需要小心继承范围。在这种情况下只有一个控制器真的要容易得多。 顺便说一句,我看到你提到了scope.apply()。小心,apply()是一个真正的javascript函数,而不是你想要的。你应该调用范围。$ apply(),$ apply是角度函数,为了避免混淆,你可以调用范围。$ digest代替。