Javascript 我们可以在angular JS services promise中通过表单加载本地json文件吗?
我试图通过表单填充我的json文件。javascript没有抛出任何错误,但是数据没有加载到json文件中。到目前为止,我还不熟悉promises。我可以看到一些从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
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;
}