Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以在AngularJS应用程序中使用2个控制器吗_Angularjs_Twitter Bootstrap - Fatal编程技术网

我可以在AngularJS应用程序中使用2个控制器吗

我可以在AngularJS应用程序中使用2个控制器吗,angularjs,twitter-bootstrap,Angularjs,Twitter Bootstrap,我正在使用Elasticsearch和AngularJS构建一个小型搜索应用程序(仍在学习如何使用两者)。我知道这可能不是最佳实践,但对于所有AngularJS代码来说,尝试将所有js代码保存在一个文件中 我想使用AngularJS UI引导程序Typeahead来实现自动完成功能,但对于如何为应用程序设置两个控制器,或者是否可以在当前控制器中包含Typeahead,我有点困惑? 以下是我的一些代码: var searchApp = angular.module('searchApp', ['e

我正在使用Elasticsearch和AngularJS构建一个小型搜索应用程序(仍在学习如何使用两者)。我知道这可能不是最佳实践,但对于所有AngularJS代码来说,尝试将所有js代码保存在一个文件中

我想使用AngularJS UI引导程序Typeahead来实现自动完成功能,但对于如何为应用程序设置两个控制器,或者是否可以在当前控制器中包含Typeahead,我有点困惑? 以下是我的一些代码:

var searchApp = angular.module('searchApp', ['elasticsearch', 'ngSanitize', 'ui.bootstrap']);

searchApp.controller('SearchResultsList', ['$scope', 'searchService', 'filterService', '$sce', function($scope, searchService, filterService, $sce) {

我已经将ui引导作为应用程序的依赖项,但由于我已经将SearchResultsList作为我的控制器,因此不确定如何将TypeaheadCtrl包含到应用程序中…

是的,您可以在AngularJS中拥有任意多个控制器。但是,您需要小心(例如,在控制器之间传递变量,
$scope.$parent
,如果适用)

同样,如果您使用的是提前输入(或Angular UI引导中的任何指令,如
tabset
),则需要小心创建be Angular UI引导的子作用域和基本作用域。始终使用一些保持对象声明
范围
变量,这样它就不会在指令中的原始范围中被覆盖(
$scope.data
存储数据与仅将数据存储在
$scope
中)

对于包含typeahead,这是一个简单的指令,当您将其作为依赖项包含在模块中时,您已经包含了它的功能。只需阅读文档并遵循它: