angular.module("MainLogin.controller", [])
// ========= Controllers
.controller("LogInController", function($scope) {
})
.controller("CreateAccountController", function ($scope, $rootScope, createAccountService) {
$rootScope.statusMessage = null;
$scope.ActionCreateAccount = function () {
$scope.statusMessage = createAccountService.createAccount($scope.createAccount);
console.log($scope.statusMessage);
}
})
// <======== Controllers
// ========= Factories
.factory("createAccountService",["$http", function($http, $scope) {
var fac = {};
fac.createAccount = function (accountDetail) {
return $http({
url: '/Account/CreateAccount',
data: { account: accountDetail },
method: 'post'
})
.then(function (response) {
debugger;
if (response.data.status == "1") {
$scope.statusMessage = "Successfully created the account"
alert($scope.statusMessage);
} else {
$scope.statusMessage = response.data.status
alert($scope.statusMessage);
}
})
}
return fac;
}])
即使我将$rootScope
更改为$scope
,我也会收到Cannot read property 'statusMessage' of undefined"
错误。我只想将 $scope.statusMessage 设置为工厂的结果,以便我可以将其绑定到我的 html。你能指出我哪里弄错了。谢谢。
将服务更改为:
.factory("createAccountService",["$http", function($http, $scope) {
var fac = {};
fac.createAccount = function (accountDetail) {
return $http({
url: '/Account/CreateAccount',
data: { account: accountDetail },
method: 'post'
});
}
return fac;
}])
以及您的控制器:
.controller("CreateAccountController", function ($scope, $rootScope, createAccountService) {
$scope.statusMessage = null;
$scope.ActionCreateAccount = function () {
createAccountService.createAccount($scope.createAccount)
.then(function(response){
if (response.data.status == "1") {
$scope.statusMessage = "Successfully created the account"
alert($scope.statusMessage);
} else {
$scope.statusMessage = response.data.status
alert($scope.statusMessage);
}
console.log($scope.statusMessage);
});
}})