Javascript 我们可以在angular JS services promise中通过表单加载本地json文件吗?

Javascript 我们可以在angular JS services promise中通过表单加载本地json文件吗?,javascript,json,angularjs,Javascript,Json,Angularjs,我试图通过表单填充我的json文件。javascript没有抛出任何错误,但是数据没有加载到json文件中。到目前为止,我还不熟悉promises。我可以看到一些从json文件获取值以供查看的帖子,但反之亦然。有人能帮忙吗 服务: var module=angular.module('app',[]); module.factory('memberDataStoreService',function($http) { var memberDataStore = {}; membe

我试图通过表单填充我的json文件。javascript没有抛出任何错误,但是数据没有加载到json文件中。到目前为止,我还不熟悉promises。我可以看到一些从json文件获取值以供查看的帖子,但反之亦然。有人能帮忙吗

服务:

var module=angular.module('app',[]);
module.factory('memberDataStoreService',function($http)
{
    var memberDataStore = {};
    memberDataStore.addUser=function(adata){
        var promise=$http({
            method: 'POST',
            url: 'data.json',
            data: adata});
        return promise;
    }
     return memberDataStore;
 });
控制器

if ($scope.registrationForm.$valid) {
            $scope.working = true;
            var promise = memberDataStoreService.addUser($scope.person);
            promise.success(function () {
                $scope.showSuccessMessage = true;
            });
            promise.error(function (data, status) {
                $scope.showErrorMessage = true;
            });
            promise.finally(function () {
                $scope.working = false;
            });
            $scope.doShow = true;
        }
html

<div ng-controller="MyController">
        <form name="registrationForm" ng-submit="register()" novalidate>
            <div ng-show="showSuccessMessage">
                Thank you for taking the time to register!
            </div>
            <div class="error" ng-show="showErrorMessage">
                There appears to have been a problem with your registration.<br/>
            </div>
            <input type="text" placeholder="First Name" name="firstName" ng-model="person.firstName" required/>
            <span ng-show="firstNameInvalid"><br/>Please enter a value for First name</span>
            <br/>
            <input type="text" placeholder="Last Name" name="lastName" ng-model="person.lastName" required/>
            <span ng-show="lastNameInvalid"><br/>Please enter a value for Last name</span>
            <br/>
            <input type="email" placeholder="Email" name="email" ng-model="person.email" required/>
            <span ng-show="emailInvalid"><br/>A valid email address is required</span>
            <br/>
            <select name="research" ng-model="person.levels"
                    ng-options="obj.label as obj.value for obj in person.channels" required>
                <option value="">Where did you hear about us?</option>
            </select>
            <span ng-show="researchInvalid"><br/>Please tell us where you heard about us</span>
            <br/>
            <input ng-model="person.newsletterOptIn" type="checkbox" name="newsletterOptIn"
                   id="newsletterOptIn" value="newsletterOptIn"/>
            <label for="newsletterOptIn">Recieve monthly newsletter</label>
            <br/>
            <input ng-disabled="working" type="submit" value="Register"/>
            <span ng-show="working" style="padding-left:10px;">
            <img src="loading.gif"/>
            </span>
            </form>
        </div>
    </div>

感谢您花时间注册!
您的注册似乎有问题。

请为名字输入一个值

请为姓氏输入一个值

需要有效的电子邮件地址
你从哪里听说我们的?
请告诉我们您是从哪里听说我们的
收到每月通讯

根据angular promise文档,您的代码应该如下所示

$q


您正在发送邮件,您期望得到什么?你到底想做什么?
if ($scope.registrationForm.$valid) {
            $scope.working = true;
            var promise = memberDataStoreService.addUser($scope.person);
            promise.then(function () {
                $scope.showSuccessMessage = true;
            }).catch(function (data, status) {
                $scope.showErrorMessage = true;
            }).finally(function () {
                $scope.working = false;
            });

            $scope.doShow = true;
        }