Tom*_*ien 4 javascript angularjs angular-ui-bootstrap
我试图使用AngularJS和UI Bootstrap将4个变量传入和传出模态窗口.不幸的是,当我从模态窗口返回参数时,只显示其中一个参数 - 其余所有参数都返回为'undefined'!
代码:
这是我打开$ modal服务的地方,并传递4个参数:
$scope.open = function() {
var modalInstance = $modal.open({
templateUrl: 'modal.html',
controller: 'ModalController',
resolve: {
var1: function() { return $scope.var1; },
var2: function() { return $scope.var2; },
var3: function() { return $scope.var3; },
var4: function() { return $scope.var4; }
}
});
Run Code Online (Sandbox Code Playgroud)
这些注入到ModalController中,如下所示:
var ModalController = function($scope, $modalInstance, var1, var2, var3, var4) {
Run Code Online (Sandbox Code Playgroud)
在ModalController中,我可以很好地查看和使用这些变量.
然后我通过关闭模态窗口将它们返回到父控制器:
var ok = function() {
$modalInstance.close($scope.var1, $scope.var2, $scope.var3, $scope.var4);
};
Run Code Online (Sandbox Code Playgroud)
当在父控制器中收到这些值时问题变得清晰 - 它似乎只传递第一个参数var1.所有其他都未定义!
modalInstance.result.then(function (var1, var2, var3, var4) {
$scope.var1 = var1;
$scope.var2 = var2;
$scope.var3 = var3;
$scope.var4 = var4;
}, function () {
console.log("Modal dismissed at: " + new Date());
});
Run Code Online (Sandbox Code Playgroud)
现在,我在UI Bootstrap文档中看到"关闭"函数需要一个承诺.我对Angular和Javascript很新,并不真正理解为什么1个变量有效,而不是多个?我认为我的结构不正确......我真的不明白解决方法是如何工作的,所以我确信我做的事情非常愚蠢.
有任何想法吗?
返回一个JSON对象,如:
$modalInstance.close({'var1':$scope.var1, 'var2':$scope.var2, 'var3':$scope.var3, 'var4':$scope.var4});
Run Code Online (Sandbox Code Playgroud)
和
modalInstance.result.then(function (result) {
console.log(result);
$scope.var1 = result.var1;
.....
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1980 次 |
| 最近记录: |