我正在使用 ui.bootstrap
开发一个简单的模式窗口。当我们单击绑定(bind)到 Controller 的某个按钮并启动时,会显示此模式,但模式及其内容绑定(bind)到另一个 Controller ,因此当我们单击时,有必要知道 Controller 在哪里,它将位于另一个文件夹中项目的情况。
例如,对结构进行成像如下:
组件1
..... template1.html
.....controller1.js
组件2
..... template2.html
.....controller2.js
controller1.js
负责加载渲染的模态视图,并分别与 template2.html
和 controller2.js
绑定(bind)。因此,在 controller1.js
中我们有:
$scope.open = function (size) {
var modalInstance = $uibModal.open({
templateUrl: 'components/component2/template2.html',
controller: 'components/component2/controller2.js',
size: size,
resolve: {
items: function () {
return $scope.items;
}
}
});
modalInstance.result.then(function (selectedItem) {
$scope.selected = selectedItem;
$log.debug(selectedItem);
}, function () {
$log.info('Modal dismissed at: ' + new Date());
});
};
这显然不适用于 controller2.js
。正如我们 templateUrl
所做的那样,有什么方法可以加载 Controller ,将其路径作为 $uibModal.open
中的参数传递?
最佳答案
我还没有测试过,但做了类似的事情:
var modalInstance = $uibModal.open({
templateUrl: 'components/component2/template2.html',
controller: 'ModalController',
size: size,
resolve: {
items: function () {
return $scope.items;
}
}
});
app.controller('ModalController', function ($scope, $modalInstance) {
// do some things
});
关于javascript - 通过 AngularJS 中的路径位置获取 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35572135/