Я пытаюсь добавить переменную (кнопка отмены с функцией) к $scope.dialogs.activeSelect.buttons[3]
, однако, как только я проверяю область действия, объект также добавляется к $scope.dialogs.manageprojects.buttons[3]
. Это приводит к тому, что кнопка отмены дублируется при каждом вызове openSelectDialog. Нужно ли добавлять кнопку отмены при следующем обновлении области или я что-то упустил?
var app = angular.module('Application',[]);
app.controller('Main', function($scope, $http) {
$scope.variables = {};
$scope.functions = {};
$scope.dialogs = {};
$http.get("?action=inflate").then(function(response) {
$scope.dialogs.manageprojects = {};
$scope.dialogs.manageprojects.buttons = [];
$scope.dialogs.manageprojects.buttons[0] = {};
$scope.dialogs.manageprojects.buttons[0].name = "Open";
$scope.dialogs.manageprojects.buttons[0].function = "";
$scope.dialogs.manageprojects.buttons[1] = {};
$scope.dialogs.manageprojects.buttons[1].name = "Rename";
$scope.dialogs.manageprojects.buttons[1].function = "";
$scope.dialogs.manageprojects.buttons[2] = {};
$scope.dialogs.manageprojects.buttons[2].name = "Delete";
$scope.dialogs.manageprojects.buttons[2].function = "";
getData();
});
function getData() {
$http.get("?action=get_file_structure").then(function(response) {
$scope.dialogs.manageprojects.data = response.data;
});
}
$scope.functions.openSelectDialog = function($Dialog) {
$scope.dialogs.activeSelect = $Dialog;
var cancelIndex = $Dialog.buttons.length;
$scope.dialogs.activeSelect.buttons[cancelIndex] = {};
$scope.dialogs.activeSelect.buttons[cancelIndex].name = "Cancel";
$scope.dialogs.activeSelect.buttons[cancelIndex].function = function() {
$scope.dialogs.activeSelect = {};
console.log(getScope());
};
$scope.dialogs.activeSelect.show = true;
};
});
function getScope() {
$scope = angular.element(document).find('main').scope();
$return_scope = {};
$return_scope.variables = $scope.variables;
$return_scope.functions = $scope.functions;
$return_scope.dialogs = $scope.dialogs;
return $return_scope;
}