업데이트하려고하고 AngularJs 팩토리의 업데이트 값을 가져 오는 중 하나의 범위에서 값을 설정하고 다른 가져 오기 위해 애쓰는 대신 내 응용 프로그램에서 팝업 메시지를 처리하도록 팩터 리를 설정 중입니다. 내 자신을 되풀이하는 것은 단지 하나의 공장이 메시지를 다루기를 바란다.AngularJs 팩토리에서 업데이트 값을 가져올 수없는 이유는 무엇입니까?
myApp.factory('msg',function ($modal) {
factory = {};
factory.text = '';
factory.modal;
factory.response;
factory.window = function() {
this.modal = $modal.open({
templateUrl:'partials/message/confirm.html',
controller:'cms'
});
}
factory.setText = function (text) {
this.text = text;
}
factory.getResponse = function() {
return this.response;
}
factory.confirm = function() {
this.modal.close();
this.response = true;
}
factory.cancel = function() {
this.modal.close();
this.response = false;
}
factory.confirmSave = function() {
this.text = 'save';
this.window();
}
factory.confirmUpdate = function() {
this.text = 'update';
this.window();
}
factory.confirmDelete = function() {
this.text = 'delete';
this.window();
}
return factory;
});
사용자의 컨트롤러는
myApp.controller('users',function ($scope,$location,$http,msg) {
$http.get('api/v1/users')
.success(function (data,status) {
$scope.user = data;
})
.error(function (data,status) {
$location.path('/login');
});
$scope.showWrite = function() {
$scope.write = true;
}
$scope.closeWrite = function() {
$scope.write = false;
$scope.newUser = '';
}
$scope.save = function() {
$http.post('api/v1/users/store',$scope.newUser)
.success(function (data,status) {
$scope.user.unshift({
first_name: $scope.newUser.first_name,
last_name: $scope.newUser.last_name,
email: $scope.newUser.email,
role: $scope.newUser.role
});
$scope.write = false;
$scope.newUser = '';
})
.error(function (data,status) {
alert('failed');
});
}
$scope.confirmDelete = function (index,id) {
msg.confirmDelete();
if(msg.getResponse() === true){
$http.get('api/v1/users/destroy/'+id)
.success(function (data,status) {
$scope.user.splice(index,1);
})
.error(function (data,status) {
alert('failed');
});
};
console.log(msg.getResponse());
}
$scope.showUserInfo = function() {
}
});
잘 작동하지만 다른 컨트롤러에 문제가있는 것처럼 보입니다. anngularjs + foundatio를 사용하고 있으며 http://madmimi.github.io/angular-foundation/ modal 지시문을 사용하고 있습니다. , "CMS"콘트롤러는 모달 콘텐트를 보여줄뿐입니다. 저는 'msg'팩토리를 호출하고 다른 콘트롤러에 그것을 주입하고 응답을 시도합니다. 그래서 사용자가 확인하면 'msg'팩토리 '응답 '속성은'true '로 업데이트됩니다. 문제는 두 번째 클릭에서만 올바른 응답을 얻을 수 있다는 것입니다. , 업데이트 된 코드를 확인하십시오 – munzx
@ munzx 마지막 편집을 참조하십시오. 문제의 근본 원인을 찾은 것 같습니다. – Vadim
정말 고맙습니다. , 당신은 끝내 주셔서 감사합니다 다시 :) 감사합니다 – munzx