Javascript AngularJS视图未使用UI路由器更新
我有以下资料:Javascript AngularJS视图未使用UI路由器更新,javascript,angularjs,Javascript,Angularjs,我有以下资料: <div ng-repeat="m in model"> {{m.prop1}}{{m.prop2}} </div> 我尝试了$timeout和$scope.$apply,但视图仍然无法更新: var promise = ModelService.create(model,data); promise.then(function(e){ $timeout(function(){ $scope.$apply(function
<div ng-repeat="m in model">
{{m.prop1}}{{m.prop2}}
</div>
我尝试了$timeout和$scope.$apply,但视图仍然无法更新:
var promise = ModelService.create(model,data);
promise.then(function(e){
$timeout(function(){
$scope.$apply(function(){
$scope.model.push(e);
});
})
});
更新:ModelService.js
create: function(model, data){
var defer = $q.defer();
$http.post('/api/'+model+"/create", data).success(function(e){
defer.resolve(e);
}).error(function(e){
defer.reject(e);
});
return defer.promise;
}
获取视图以呈现模型更新有什么想法吗?我的问题归结为控制器问题和忽略了ui路由器的工作 我有两个状态,model和model.create,我声明这两个状态使用相同的控制器ModelController 当打开model.create的ui视图时,它创建了ModelController的新实例 这意味着我将返回的数据推送到一个数组中,该数组在控制器的父states实例上呈现时没有呈现
要修复此问题,我为子状态的控制器参数传递了false,使其使用与父状态相同的实例并更新正确的数组。您不需要$apply或$timeout。e是您期望的正确结构的对象吗?console.loge验证您的对象是的,e是正确的数据,在推送后我注销模型时,它被推送到数组中。只是没有更新的视图是指令中的视图还是直接的视图?被破坏的东西似乎不在这里。。。恐怕我们需要一张更大的照片。
create: function(model, data){
var defer = $q.defer();
$http.post('/api/'+model+"/create", data).success(function(e){
defer.resolve(e);
}).error(function(e){
defer.reject(e);
});
return defer.promise;
}