2014-08-28 5 views
1

Я видел этот вопрос, однако, я немного озадачен моим. Решения позволяют удалить один из контроллеров. Поэтому, когда я удаляю ng-controller = sigSearchResults из тега body, мои результаты не заполняются в ng-grid = "gridOptions". Как это исправить?Угловой контроллер получает вызов дважды

var sig = angular.module('sig', ['ngRoute']); 

    sig.config([ '$routeProvider', function($routeProvider) { 
     $routeProvider.when('/search/:sig', { 
      template : ' ', 
      controller : 'sigSearchResults' 
     }).when('/', { 
      template : ' ', 
      controller : 'sigSearchResults' 
     }).otherwise({ 
      redirectTo : '/' 
     }); 
    } ]); 

sig.controller('sigSearchResults', function($scope,$log,$http,$q,$routeParams, $window) { 
    console.log($routeParams); 
    //code that populates ng-grid to gridOptions element. 
}); 


<html ng-app="sig">  
<body ng-controller="sigSearchResults"> 
<div class="contentContainer"> 

    <div ng-view></div> 

    <!-- This is the template for the result --> 
    <script type="text/ng-template" id="sig-search-result-id" > 

    <div ng-show="loading" style='clear:both; text-align: center;'>Loading report...<img src="../media/images/Wait3.gif"></div> 


    <div ng-show="!loading" class="gridStyle" ng-grid="gridOptions"></div> 
    </script> 

</div> 

ответ

2

Да, удалить ng-controller="sigSearchResults" из вашего <body> тега, как вы используете $routeProvider настроить маршрутизацию и вид, и это не выглядит как контроллер должен работать на самом высоком уровне.

Похоже, все, что вам не хватает в вашей конфигурации маршрута по tempateUrl, т.е.

when('/', { 
    templateUrl: 'sig-search-result-id', 
    controller: 'sigSearchResults' 
}) 
+0

Спасибо. Я пробовал это, но с шаблоном vs templateURL. Работает сейчас :). – KingKongFrog

Смежные вопросы