2015-04-01 118 views
0

我想弄清楚如何让我的用户的电子邮件传递给我的控制器,但我得到undefined$scope.user.email$scope被定义,但在那里没有user对象。我的代码有问题吗?简单的AngularJS范围问题(新手)

HTML

<label class="item item-input"> 
    <span class="input-label">Email</span> 
    <input ng-model="user.email" type="text"> 
</label> 
<button ng-click="signInClick()" class="button button-full button-positive"> 
    Sign In 
</button> 

控制器

.controller('WelcomeCtrl', function($scope) { 
    $scope.signInClick = function() { 
     console.log($scope.user.email); 
    } 
}) 

EDITS

控制器通过js/apps.js和运行链接被点击我的按钮时,所以我知道它挂WelcomeCtrl

+2

是由WelcomeCtrl控制的html右侧部分的输入字段?你能举一个例子来说明一个jsfiddle或plunker吗? – Steve 2015-04-01 16:01:43

+1

从您向我们展示的代码中,您没有在任何地方定义“用户”对象 – inorganik 2015-04-01 16:22:24

+0

@inorganik您是什么意思“定义”用户对象“?史蒂夫我为你的问题添加了一个编辑,对于混淆抱歉。 – Jacksonkr 2015-04-01 16:46:12

回答

1

因为$ scope.user是未定义的。

.controller('WelcomeCtrl', function($scope) { 
    $scope.user = {}; 
    $scope.signInClick = function() { 
     console.log($scope.user.email); 
    } 
}) 
+0

现在'user'是一个对象,但电子邮件显示为'undefined'。 – Jacksonkr 2015-04-01 19:06:56

+0

哇。我甚至不会告诉你为什么电子邮件输入值是未定义的。我一直在研究这个项目的时间太长了。谢谢兰斯。 – Jacksonkr 2015-04-02 14:08:30