簡體   English   中英

Angular控制器被調用兩次

[英]Angular controller getting called twice

我已經看到了這個問題,但是,我對我有些困惑。 解決方案指出要刪除其中一個控制器。 因此,當我從body標簽中刪除ng-controller = sigSearchResults時,我的結果不會填充在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>

是的,當您使用$routeProvider配置路由和視圖時,請從<body>標記中刪除ng-controller="sigSearchResults" ,並且您的控制器似乎不應在頂層運行。

看起來您所缺少的tempateUrl您的路由配置中的tempateUrl ,即

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM