0

我正在尝试将新文档插入已发布的集合中,然后立即导航到不同的状态。

问题是,文档没有被插入。我很确定在处理插入之前订阅已停止。但是如何在更改状态之前等待插入?

角度视图代码

...
<input name="titleInput" class="form-control" type="text" placeholder="Project title" ng-model="newProject.title" />                                          
...
<button type="submit" class="btn btn-primary pull-right" ng-click="addProject()">Save</button>               

控制器代码

$scope.newProject = {};                                                                                                                                               

$meteor.subscribe('projects').then(function(subscriptionHandle) {                                                                                                     
    $scope.projects = $scope.$meteorCollection(function() {                                                                                                             
        return Projects.find({});                                                                                                                                         
    });                                                                         
});      

// Button on page calls this function
$scope.saveProject = function() {                                                                                                                                      
    $scope.newProject._id = Random.id();
    // Push data onto collection, but doesn't have chance to insert on server 
    // before change of state is fired                                                                                                                                
    $scope.projects.push($scope.newProject);
    $state.go( "projects");                                                                                                                                             
}

我尝试使用订阅的 onStop 回调,但在插入完成之前订阅仍然关闭。

我目前的解决方法是调用 Meteor 方法而不是推送到集合上,这工作正常但看起来很老套——如果可能的话,我想让上面的代码工作。

谢谢...

4

0 回答 0