为什么$ scope在控制器方法中为null

时间:2015-03-17 23:21:15

标签: javascript angularjs angularjs-scope closures

我有以下视图和控制器。我只是想在我的ng-click处理程序(提交表单)中检查$ scope对象以进行双向数据绑定,但它始终是未定义的。

以下是我的观点:

<body ng-controller="efController" class="container">
    <form role="form" class="form-horizontal">
            <div class="form-group">
                <label for="fullName" class="col-sm-3 control-label">Name</label>
                <div class="col-sm-9">
                    <input type="text" id="name" name="name" class="form-control" ng-model="name" />
                </div>
            </div>
        <input type="submit" class="btn btn-primary" value="Submit" ng-click="submitForm()" />
    </form>
</body>

这是我的控制器:

app.controller("efController",
    function ($scope) {
        $scope.submitForm = function () {
            //alert($scope.name);
        }
    }]);

如果我的submitForm()函数中没有任何内容,并且我在结束括号中设置了断点,那么$ scope总是在手表中未定义,但如果我只是使用$ scope.prop编写警报或访问任何模型属性,它总是很好。

我的问题是为什么在正确调用函数并且$ scope也被注入时它是未定义的?

编辑这里是视频的屏幕截图,其中的人正在检查手表中的$ scope,你可以信任我,我的代码与他的代码相差200%。这是关于复数符号http://www.pluralsight.com/courses/angularjs-forms-bootstrap-mvc5

的课程链接

enter image description here

编辑2:以下是plunkr John Papa。

0 个答案:

没有答案