मैं वर्तमान में Angular.js का उपयोग कर एक छोटा सा आवेदन पर काम कर रहा हूँ मेरी नजर में मैं बटनAngular.js केवल क्लिक पहले पर बुलाया समारोह onclick
<md-button class="md-primary" ng-click="editUser(user, $event)">Edit</md-button>
editUser विधि इस तरह दिखता है निम्नलिखित है:
$scope.editUser = function (user, $event) {
$scope.userToEdit = user;
$mdDialog.show({
controller: DialogController,
targetEvent: $event,
templateUrl: '/js/modules/user/views/edit.tmpl.html',
parent: angular.element(document.body),
clickOutsideToClose: true,
scope: $scope
})
.
then(function (answer) {
if (answer == "save") {
for (right in $scope.allSystemRightsStatements) {
if ($scope.allSystemRightsStatements[right].selected) {
if($scope.userToEdit.rights==null){
$scope.userToEdit.rights = [];
}
$scope.userToEdit.rights.push($scope.allSystemRightsStatements[right]);
}
}
$scope.updateUser($scope.userToEdit);
}
$scope.userToEdit = {};
}, function() {
$scope.userToEdit = {};
});
};
$scope.updateUser = function (user) {
//userService.updateUser makes a $http PUT request
var promise = userService.updateUser(user);
promise.then(function (result) {
$mdToast.show(
$mdToast.simple(result.message)
.position($scope.getToastPosition())
.hideDelay(3000)
);
}, function (reason) {
$mdToast.show(
$mdToast.simple(reason)
.position($scope.getToastPosition())
.hideDelay(3000)
);
}, function (update) {
});
};
अब संवाद अच्छी तरह से दिखाया गया है और उत्तर कार्य को भी अपेक्षित सबकुछ कहा जाता है।
हालांकि, जब मैं बटन को दूसरी बार क्लिक करता हूं तो editUser funciton निष्पादित नहीं होता है। जैसे कि बटन से ऑनक्लिक ईवेंट को संवाद बंद कर दिया गया था।
इस समस्या को हल पर कोई मदद बहुत सराहना की है, धन्यवाद
आप कंसोल लॉग में किसी भी त्रुटि देख पा रहे हैं के साथ बाध्यकारी नहीं है (गुंजाइश आप mdDialog करने से गुजर रहे हैं के बारे में)? –
आपकी त्रुटि ** में हो सकती है .. कुछ छोटे तर्क ** आपके कोड का हिस्सा ... यह इस तथ्य के कारण भी हो सकता है कि आप '$ scope.updateUser' के साथ एसिंक विधि को कॉल कर रहे हैं और फिर एक एम्पी ऑब्जेक्ट को तुरंत $ $ scope.userToEdit' सेट करें। '$ scope.updateUser' के पास ऐसा करने का समय नहीं था जो वह करना चाहता था और आप पास ऑब्जेक्ट को खाली ऑब्जेक्ट पर सेट करते हैं ... – ezcoding
कोई कंसोल लॉग खाली नहीं है :-( अद्यतन वास्तव में सही तरीके से किया जाता है (जैसा कि डीबी द्वारा प्रतिबिंबित किया गया है)। मैं स्पष्टीकरण के लिए छोटा तर्क जोड़ूंगा। – bwright