Tôi hiện đang làm việc trên một ứng dụng nhỏ sử dụng Angular.JS Theo quan điểm của tôi, tôi đã nútAngular.JS onclick chức năng chỉ kêu gọi đầu tiên bấm
<md-button class="md-primary" ng-click="editUser(user, $event)">Edit</md-button>
phương pháp edituser trông giống như sau sau:
$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) {
});
};
Bây giờ hộp thoại được hiển thị độc đáo và chức năng trả lời cũng được gọi, mọi thứ như mong đợi.
Tuy nhiên, khi tôi nhấp vào nút lần thứ hai, trình chỉnh sửa funciton sẽ không được thực hiện. Như thể sự kiện onClick từ nút đã bị xóa ở hộp thoại gần.
Bất kỳ giúp đỡ về giải quyết vấn đề này được đánh giá rất nhiều, Cảm ơn
làm bạn thấy bất kỳ lỗi trong giao diện điều khiển đăng nhập? –
lỗi của bạn có thể nằm trong ** .. một số logic nhỏ ** một phần mã của bạn ... Nó cũng có thể là do thực tế, rằng bạn đang gọi một phương thức async với '$ scope.updateUser' và sau đó ngay lập tức thiết lập '$ scope.userToEdit' thành một đối tượng empy. '$ scope.updateUser' có thể không có thời gian để hoàn thành những gì nó có ý định làm và bạn đặt đối tượng được truyền cho một đối tượng trống ... – ezcoding
Không có nhật ký console nào trống :-( Cập nhật thực sự được thực hiện đúng (như được phản ánh bởi DB) Tôi sẽ thêm logic nhỏ để làm rõ – bwright