【发布时间】:2015-04-18 01:10:45
【问题描述】:
我是 AngularJS 的初学者。但是,我无法在提交表单后更新 $rootScope 值,它被返回为未定义。
控制器:
app.controller('campaignCtrl', ['$scope', '$rootScope', function($scope, $rootScope) {
$scope.submit = function() {
$rootScope.campaign = this.campaign;
};
}]);
还有形式:
<form class="holder" name="campaignForm" ng-submit="submit()" >
<div class="form-group" show-errors>
<label for="inputDate">Date</label>
<p class="help-block"><em>Ex: 12/10/2015</em></p>
<input type="date" class="form-control" name="inputDate" ng-model="campaign.date" id="inputDate" required>
</div>
<button type="submit" class="btn btn-lg btn-default pull-right">Submit</button>
</form>
【问题讨论】:
-
该函数中的
this是什么?我敢打赌,这不是您想的那样,您将 undefined 分配给$rootScope.campaign。 -
我不赞成您在这种情况下使用
this。您的campaign对象正在$scope中建模,因此您很可能希望它为$rootScope.campaign = $scope.campaign -
我已经尝试过了,但没有成功.. $rootScope.campaign 仍然未定义;(
-
你如何验证它是未定义的?
-
这就是原因。 $rootScope 在页面刷新时不会持续存在。它会在每次页面加载时重新初始化。
标签: javascript angularjs