我正在创建一个用于学习的Angular应用程序(我是Angular的新手)并且目前仍处于困境。
以下是我的Angular控制器
cookingPad.controller('RecipeCreateController', function($scope, $http) {
$scope.recipeSave = function($scope, $http){
//code
};
});
以下是我的表格
<form id="signup-form_id" ng-submit="recipeSave()">
//some html
<input type="text" name="name" ng-model="recipeFormData.name" id="name" class="form-control input-lg no-border-radius" placeholder="Name">
// some more html
<button class="btn btn-lg btn-success" id="save1" type="submit"><i class="fa fa-save"></i> Save</button>
</form>
因此,当我在文本框中输入内容并单击save
时,它会进入recipeSave
功能。但是当我使用chrome dev工具检查$scope
变量时,它会将其显示为
$scope
undefined
可能是什么原因?我的Angular中的其他所有内容都在Angular 1.2.4上工作,我发现了几个SO问题,但它们都不适用于我。
答案 0 :(得分:3)
请勿在{{1}}中重新声明控制器参数:
recipeSave
做出改变,事情就应该开始了。您的模板显式调用$scope.recipeSave = function() {
没有参数,并且您希望通过闭包访问您的控制器参数,这将正常工作。
答案 1 :(得分:1)
这是因为recipeSave方法有$ scope和$ http作为参数。依赖注入在Controller / Service / Filter / etc级别上工作,属性来自不同的范围,因为recipeSave不会解决依赖注入。
换句话说,在视图中,当您执行recipeSave函数时,您没有传递参数,因此函数未定义为两个参数的值。
干杯