HTML에서 컨트롤러로 값을 보내려고하지만 컨트롤러로 연결되지 않습니다. 이 코드 값의 문제점은 컨트롤러 및 팩토리에서 표시가 정의되지 않은 것입니다. 이 코드는 쉽게 이해 바랍니다 :HTML에서 컨트롤러로 값을 전송하려고 시도합니다.
var mymodal = angular.module('mymodal', []);
mymodal.controller('MainCtrl', function($scope, loginfactory) {
$scope.showModal = false;
$scope.toggleModal = function() {
$scope.showModal = !$scope.showModal;
};
$scope.doLogin = function() {
var promise = loginfactory.logincheck($scope.userid, $scope.pwd);
}
});
mymodal.factory("loginfactory", function($http, $q) {
return {
"logincheck": function(userid, pwd) {
console.log(userid);
console.log(pwd);
return Object;
}
};
});
mymodal.directive('modal', function() {
return {
template: '<div class="modal fade">' +
'<div class="modal-dialog">' +
'<div class="modal-content">' +
'<div class="modal-header">' +
'<button type="button" class="close" data-dismiss="modal" aria-hidden="">×</button>' +
'<h4 class="modal-title">{{ title }}</h4>' +
'</div>' +
'<div class="modal-body" ng-transclude=""></div>' +
'</div>' +
'</div>' +
'</div>',
restrict: 'E',
transclude: true,
replace: true,
scope: true,
link: function postLink(scope, element, attrs) {
scope.title = attrs.title;
scope.$watch(attrs.visible, function(value) {
if (value == true)
$(element).modal('show');
else
$(element).modal('hide');
});
$(element).on('shown.bs.modal', function() {
scope.$apply(function() {
scope.$parent[attrs.visible] = true;
});
});
$(element).on('hidden.bs.modal', function() {
scope.$apply(function() {
scope.$parent[attrs.visible] = false;
});
});
}
};
});
내보기 :
여기<div ng-controller="MainCtrl" class="container">
<h1>Modal example</h1>
<button ng-click="toggleModal()" class="btn btn-default">Open modal</button>
<modal title="Login form" visible="showModal">
<form role="form">
<div class="form-group">
<label for="email">Email address</label>
<input type="text" class="form-control" ng-model="userid" placeholder="Enter email" />
</div>
<div class="form-group">
<label for="password">Password</label>
<input type="password" class="form-control" ng-model="pwd" placeholder="Password" />
</div>
<button type="submit" ng-click="doLogin()" class="btn btn-default">Submit</button>
</form>
</modal>
</div>
서비스가 필요하지 않습니다. $ scope.doLogin = function (userid, pwd) {$ http.post ('yourApiUrl', {userId : userid, pwd : pwd})'ng-click = "doLogin (userid, pwd) }' – praHoc
하지만이 부트 스트랩 토글 팝업을 사용하고 싶습니다. 지시어로만 가능합니다 –
죄송합니다. 조정할 필요가있는 것은'ng-click = "doLogin (userid, pwd)"in controller'$ scope .doLogin = function (userid, pwd) {$ http.post ('yourApiUrl', {userId : userid, pwd : pwd})}하면 서비스와 지시문을 유지할 수 있습니다. 문제 없어. – praHoc