2015-05-20 6 views
-1

В моей angularjs службы, запрос $ HTTP, когда я использую request.success(function(response){...

Это как ответ показано в консоли >>

"Object {user: Object, shop: Object, products: Array[2]}" 

и это пользователь объект >>

Object {userId: "1", password: "b", email: "b", createDateTime: "2015-05-19 21:35:40", updateDateTime: "2015-05-19 21:35:40"…} 

Я пытаюсь получить доступ к объекту пользователя ответа как это >>

this.user = response.user 

это дало мне ошибку >>

Type Error: Cannot set property 'user' of undefined...

Почему?

+1

http://stackoverflow.com/help/how-to-ask – hurricane

+0

Вы можете попробовать создать jsfiddle или plunkr, чтобы проиллюстрировать вашу проблему. – jusopi

+0

У вас есть свойство this.user инициализировано перед назначением response.user? Вероятно, ошибка говорит, что она не находит this.user? – DG3

ответ

1

Это происходит потому, что вы находитесь в .success ветви с $http вызова так, когда вы говорите this.user, this не относится к тому, что вы думаете, что он делает. Я предполагаю, что вы хотите this обратиться к контроллеру . Наилучшая практика это в начале вашего контроллера сделать что-то вроде

var vm = this; 

Тогда не будет никаких конфликтов против this ключевое слово, и вы можете назначить

vm.user = response.user 

в вашем $http вызова.

+0

это действительно работает Большое вам спасибо :) –

Смежные вопросы