gpt4 book ai didi

angularjs - 为什么作为函数的 Angular Controller 可以工作,而包中的 Controller 却不能工作?

转载 作者:行者123 更新时间:2023-12-03 23:38:07 26 4
gpt4 key购买 nike

在最近的一个问题中,我遇到了使用 Angular UI for Bootstrap 实现的简单模式对话框的问题。 .

我从 this fiddle 开始,而回答的人想出了 this result.

但是,一件事立即引起了我的注意!

旧 Controller 实现

var controllers = angular.module('app.controllers', []);    

controllers.controller('ModalController', ['$scope', '$modal', '$log',
function ($scope, $modal, $log) {
// Overarching controller code...
}
]);

controllers.controller('ModalInstanceController', ['$scope', '$modalInstance',
function ($scope, $modalInstance, params) {
// ...Modal Instance Code...
}
]);

此代码不适用于 Bootstrap Modal 的 Angular UI,但由于某种原因,此代码可以:

var ModalController = function($scope, $modal, $log) {
// Overarching controller code...
};

var ModalInstanceController = function($scope, $modalInstance, params) {
// Modal Instance Code...
};

...问题是,AngularJS 代码通常像第一个示例一样模块化,以避免困惑全局命名空间。

到目前为止,我的实验还没有能够获得成功的模块化设置。我尝试了一些简单的替换,其中我将使一个 Controller 或另一个 Controller 成为模块化 Controller ,希望只有一个 Controller 可以防止 params防止在 Controller 之间传递;事实证明情况并非如此。实现$scope.params = [];在声明 $scope.open() 之前函数,并填充 $scope.paramsopen函数同样没有效果。

问题:在 AngularUI for Bootstrap 系统的背景下,为什么模块化方法会失败?更重要的是,我怎样才能让它发挥作用?

最佳答案

这是您已修复的 plnkr ( http://jsfiddle.net/pEmXt/4/ ),它有几个问题:

  • 您定义模块的顺序错误。
  • 您的 ui DI 位于错误的位置。
  • 您的解析语法错误。
  • 模态实例 Controller 中的 DI 缺少依赖项列表中的一项。

解析方法的使用如下:

resolve: {
objectName: function(){
return myObject;
}
}

关于angularjs - 为什么作为函数的 Angular Controller 可以工作,而包中的 Controller 却不能工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24767997/

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