AngularJS控制器对象未定义

时间:2015-04-28 11:33:04

标签: javascript angularjs

在以下代码中,保存数据后,console.log(user)将返回undefined。这有什么不对?

<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/

3 个答案:

答案 0 :(得分:1)

对我来说,似乎很好

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

在输入框中填写一些值后,代码工作正常。 第一次用户是一个空字符串,因此user.name将是未定义的。

是的,声明对象的正确方法是

$scope.name = {};

不是

$scope.name="";

答案 1 :(得分:0)

我连接了一个快速的jsFiddle,看起来很好:http://jsfiddle.net/tfqytchk/

当然,第一次按保存用户是一个emptry字符串,而user.name是未定义的(我认为这就是你要报告的内容)。如果您希望更改该行为,请将$scope.user = '';更改为$scope.user = { name: '' };

答案 2 :(得分:0)

不要声明像这样的对象

      $scope.user= '';

声明像

这样的对象
      $scope.user= {};