gpt4 book ai didi

javascript - AngularJS:在 Controller 中初始化嵌套范围变量

转载 作者:数据小太阳 更新时间:2023-10-29 05:58:00 25 4
gpt4 key购买 nike

我喜欢保持模型名称的命名空间简洁且具有描述性,因此我使用像这样的嵌套模型变量(其中月份和年份嵌套在服务中):

<form data-ng-submit="submit()">
<select data-ng-model="service.month" data-ng-options="m for m in months"/>
<input data-ng-model="service.year"/> {{ service.year }}
<input type="submit"/>
</form>

在我的 Controller 中,我想将 $scope.service.month$scope.service.year 设置为初始值,但我收到一个 javascript 错误 无法设置未定义的属性“year”,所以我猜测 DOM 尚未被解析并且所有 $scope 变量尚未创建。在 Angular 解析 DOM 并创建所有模型之前,如何让一些代码等待运行?

这是我的 Controller :

mod.controller('AddServiceCtrl', [
'$scope',
'$rootScope',
function($scope, $rootScope) {
var date = new Date();
$scope.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
$scope.service.year = 2014;
$scope.submit = function(){
};
}])

最佳答案

 $scope.service= {month:'Mar',year:2014};

AngularJS 仍然是 JavaScript。

不幸的是,AngularJS 团队选择将实际上是呈现器(或 View 模型)的东西命名为 controller。这听起来可能没那么重要,但从概念上讲,这是为了理解 controllers 做什么。

关于javascript - AngularJS:在 Controller 中初始化嵌套范围变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22564977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com