javascript-为什么在模态解析中声明一个函数
作者:互联网
关于模态angular-ui的此代码示例,我有2个简单的问题.
可以找到代码here,我还引用了有趣的部分:
var ModalDemoCtrl = function ($scope, $modal, $log) {
$scope.items = ['item1', 'item2', 'item3'];
$scope.open = function (size) {
var modalInstance = $modal.open({
templateUrl: 'myModalContent.html',
controller: ModalInstanceCtrl,
size: size,
resolve: {
items: function () {
return $scope.items;
}
}
});
modalInstance.result.then(function (selectedItem) {
$scope.selected = selectedItem;
}, function () {
$log.info('Modal dismissed at: ' + new Date());
});
};
};
// Please note that $modalInstance represents a modal window (instance) dependency.
// It is not the same as the $modal service used above.
var ModalInstanceCtrl = function ($scope, $modalInstance, items) {
$scope.items = items;
$scope.selected = {
item: $scope.items[0]
};
$scope.ok = function () {
$modalInstance.close($scope.selected.item);
};
$scope.cancel = function () {
$modalInstance.dismiss('cancel');
};
};
所以我的第一个问题是,为什么我需要在项目上声明一个函数:
resolve: {
items: function () {
return $scope.items;
}
}
我不能做这样的事情:
resolve: {
items: $scope.items;
}
我的第二个问题是为什么项目不是单引号的字符串? javascript如何不将键混淆为局部变量?
谢谢您的解释!
解决方法:
对于第一个问题:
resolve: {
items: function () {
return $scope.items;
}
}
resolve.items是一个函数.
resolve.items()返回一个数组
resolve: {
items: $scope.items;
}
resolve.items是一个数组
resolve.items()导致错误.
需求是因为框架希望调用一个函数.
对于第二个问题:JS!= JSON.语法使之成为可能.如果您编写了items = …而不是items:…,那么它将被创建为全局变量(或者,如果严格模式处于活动状态,则会引发错误)
标签:bootstrap-modal,angularjs,angular-ui,javascript,function 来源: https://codeday.me/bug/20191121/2053692.html