如何定义Angularjs一直可见的控制器

时间:2014-07-18 01:49:40

标签: javascript angularjs autocomplete

我在Angularjs中以这种方式定义了一条路线:

mainApp.config(['$routeProvider',
  function($routeProvider) {
    $routeProvider.
      when('/test', {
        templateUrl: 'templates/test.html',
        controller:'testController'
      }).
      otherwise({
        redirectTo: '/'
      });
}]);

现在我有一个自动完成功能(输入),必须对所有页面都可见:

mainApp.controller('autocompleteController',function($scope,dataFactory){
    dataFactory.get('test.json').then(function(data){
        $scope.items=data;
    });
    $scope.name="";
    $scope.onItemSelected=function(){
        console.log('selected='+$scope.name);
    }
});

.....

自动完成控制器有自己的模板,当我将它包含在index.html中时它不起作用(不显示建议),但当我单独使用它只有一个控制器时,它可以工作。我的问题是找到一种方法将它包含在显示的任何页面中(在任何调用的控制器中)。 感谢回复!!!

1 个答案:

答案 0 :(得分:1)

相对简单,您只需将{h}保留在ng-view之外,并确保容器有ng-controller="autocompleteController"

routeProvider仅影响ng-view

内的内容