我正在尝试将新文档插入已发布的集合中,然后立即导航到不同的状态。
问题是,文档没有被插入。我很确定在处理插入之前订阅已停止。但是如何在更改状态之前等待插入?
角度视图代码
...
<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 方法而不是推送到集合上,这工作正常但看起来很老套——如果可能的话,我想让上面的代码工作。
谢谢...