Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.08.2013, 13:05
Аспирант
Отправить личное сообщение для virus-07 Посмотреть профиль Найти все сообщения от virus-07
 
Регистрация: 16.12.2010
Сообщений: 41

присвоение объекта
Не до конца понимаю логику angularjs. Объясню, что я пытаюсь сделать, а кто-нибудь скажет мне, почему я дурак.

Есть объект user{email:'some@some.ru', login:'login'}.
Этот объект транслируются в обычный параграф <p>{{user.email}}</p>.

Я добавляю форму, через которую можно поменять логин и почту.
Логика такая: создать копию user для транслирования в форму и изменения, если проверку проходит — присваиваем в первичный объект, если нет — то и откатывать нечего.
То есть var user_upd = user; и транслирую это в инпуты.

Но как только я изменяю значение в инпуте, у меня меняется значение в параграфе. Почему, если я пытаюсь работать с 2 независимыми объектами?

Вот маленький контроллер. Изменения в $scope.user_upd отражаются в $scope.user

function userCtrl($scope){
        var user = {id:'2', name:'yandex', email:'yandex@yandex.ru'}
        $scope.user = user;
        $scope.user_upd = user;

        $scope.showUserUpd = function(){ // форма для изменения логина
            $('#user_popup').fadeIn();
        }
}


Надеюсь, понятно выражаюсь.
Ответить с цитированием
  #2 (permalink)  
Старый 22.08.2013, 13:37
Аспирант
Отправить личное сообщение для virus-07 Посмотреть профиль Найти все сообщения от virus-07
 
Регистрация: 16.12.2010
Сообщений: 41

Вполне вероятно, моя идея проверки данных неверна. Тогда подскажите пожалуйста, где бы могла быть доходчиво описана логика проверки данных на сервере.
Ответить с цитированием
  #3 (permalink)  
Старый 22.08.2013, 14:00
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от virus-07
$('#user_popup').fadeIn();
из контроллера напрямую с dom не работают - ng-show, ng-hide
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #4 (permalink)  
Старый 22.08.2013, 14:04
Аспирант
Отправить личное сообщение для virus-07 Посмотреть профиль Найти все сообщения от virus-07
 
Регистрация: 16.12.2010
Сообщений: 41

Это заплатка, мне хочется плавной анимации, но сперва хочу понять как работать с формами, а потом уже эффектами заниматься.
Как производить работу с объектами, применяя изменения только в случае успеха?
Ответить с цитированием
  #5 (permalink)  
Старый 22.08.2013, 14:23
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от virus-07
но сперва хочу понять как работать с формами
http://angular.ru/guide/forms
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #6 (permalink)  
Старый 29.08.2013, 14:41
kdv kdv вне форума
Новичок на форуме
Отправить личное сообщение для kdv Посмотреть профиль Найти все сообщения от kdv
 
Регистрация: 18.12.2009
Сообщений: 2

" Почему, если я пытаюсь работать с 2 независимыми объектами?

var user = {id:'2', name:'yandex', email:'yandex@yandex.ru'}
$scope.user = user;
$scope.user_upd = user;
"

Потому что они не независимы. Они используют одну область памяти. Объекты присваиваются по адресу, если хочешь сделать их независимыми, то

1) Используй клонирование
или
2) Используй явное присвоение свойств и методов объекта от другого через extend
Ответить с цитированием
  #7 (permalink)  
Старый 29.08.2013, 17:52
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

$scope.user = user;
$scope.user_upd = angular.copy(user);

Вот теперь они независимые
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт вычисления координат объекта banderasantonio197555 Events/DOM/Window 4 16.08.2011 17:37
прямая от первого объекта до второго ntro123 Events/DOM/Window 5 09.05.2011 08:41
Как по событию вызвать метод определенного экземпляра объекта jvs jQuery 3 24.12.2009 16:04
Можно ли получить имя экземпляра объекта внутри самого объекта? Ichigeki Общие вопросы Javascript 9 14.11.2008 19:00
Не работает перебор свойств объекта BANick Общие вопросы Javascript 1 16.09.2008 22:46