2015-04-28 3 views
1

В следующем коде, когда данные сохранены, возвращается console.log(user)undefined. Что здесь не так?Объект контроллеров AngularJS не определен

<input type="text" class="form-control" id="inputEmail" placeholder="Name" ng-model="user.name"> 
<a class="btn btn-link pull-right" ng-click="save(user)">Save</a> 

Контроллеры:

LControllers.controller('InstanceCtrl', ['$scope', 'Instance', 'User', 
function ($scope, Instance , User) { 
    $scope.user= ''; 
    $scope.save = function (user) { 
     console.log(user)// undefined 
     console.log(user.name)  
    }; 

JSFiddle: http://jsfiddle.net/U3pVM/15248/

+0

'user' is undefined или' console.log' – Christian

+0

пользователь не определен –

+1

пытается поместить 'user' вместо' use.name' внутри 'ng-model' –

ответ

1

Для меня, кажется, хорошо

http://jsfiddle.net/U3pVM/15248/JSFiddle

после заливки некоторого значения в поле ввода, код работает отлично. Первый пользователь - пустая строка, и, следовательно, имя пользователя будет неопределенным.

И да правильный способ объявить объект является

$scope.name = {}; 

не

$scope.name=""; 
0

Я телеграфировал вверх быстро jsFiddle и, кажется, хорошо: http://jsfiddle.net/tfqytchk/

Конечно первый раз, когда вы нажимаете сохранить пользователь является строка emptry и user.name не определены (я думаю, это то, что вы сообщаете). Если вы хотите, чтобы изменить это поведение, то изменить $scope.user = ''; к $scope.user = { name: '' };

+0

Кто проиграл и почему? –

+0

Не знаю. –

+0

Ваша причина кажется мне верной, и нисходящее направление исчезло. Отлично. –

0

Не объявляйте объект как этот

 $scope.user= ''; 

объекта Declare как

 $scope.user= {}; 
Смежные вопросы