2014-10-26 61 views
2

我有一个对话框,我想在两个不同的地方使用,所以我已经构建了一个模板和一个控制器trackCtrl以供使用的模式。该控制器被定义settingsApp模块,它是不是一个启动模式,所以我愿做这样的事情:如何使用Angular-ui-Bootstrap模块中另一个模块的控制器?

var modalInstance = $modal.open({ 
    templateUrl: 'templates/track.html', 
    controller: 'settingsApp.trackCtrl' 
}); 

但它失败,当然。

解决此问题的最佳方法是什么?

谢谢!

+0

只需使用控制器的名称,无论其模块是什么。在运行时,无论模块是什么,所有组件都在相同的命名空间中。 – 2014-10-26 14:29:25

+0

我有以下错误: “错误:[ng:areq]参数'trackCtrl'不是函数,未定义” – Eran 2014-10-26 14:57:24

+1

然后控制器没有命名为'trackCtrl',或者它根本没有定义,或者它模块未加载。没有看到代码很难提供帮助。 – 2014-10-26 14:59:19

回答

0

问题是定义控制器的js文件从未运行。 (控制器应简称为它的名称。)

1

只需添加一个依赖到你的其他模块,然后只是简单地使用该控制器名称。

angular('app', ['settingsApp']); 

var modalInstance = $modal.open({ 
    templateUrl: 'templates/track.html', 
    controller: 'trackCtrl' 
}); 
+0

谢谢,我想在大多数情况下,它会工作,但它不适用于我的项目。 我已经在'$ modal.open'命令和'angular.module(“settingsApp”)'存在且可访问之前暂停了调试。 有没有其他建议? – Eran 2014-10-26 14:54:53

相关问题