5

Error: [$compile:multidir] Multiple directives [statbox, statbox] asking for template on:多個指令要求的模板上

(在控制檯)

的index.html

<script src="js/dashboard/dashboard.module.js"></script> 
<script src="js/dashboard/dashboard.component.js"></script> 
<script src="js/dashboard/statbox.component.js"></script> 

dashboard.module.js

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

DA shboard.component.js

angular.module('dashboard').component('dashboard', { 
templateUrl: 'templates/dashboard/dashboard.template.html', 
controller: ['$scope', '$routeParams', '$http', '$rootScope', '$log', function DashboardController($scope, $routeParams, $http, $rootScope, $log) { 
    ...stuff NOT REFERENCING STATBOX by any means... 
}] 
}); 

statbox.component.js

angular.module('dashboard').component('statbox', { 
templateUrl: 'templates/dashboard/statbox.template.html', 
controller: ['$http', '$rootScope', '$log', function StatboxController($http, $rootScope, $log) { 
    ... some random get request ... 
}] 
}); 

而且裏面app.js

var app = angular.module('buttonMasher', ['ngRoute', 'dashboard', ...]); 

dashboard.template.html

... stuff ... 
    <div id="history"> 
     ... stuff ... 

     <p><b>Statbox</b></p> 
     <statbox></statbox> 
    </div> 

statbox.template.html

<div id="statbox"> 
<p>{{$ctrl.statboxText}}</p> 

什麼我做錯了,爲什麼會這樣多指令錯誤?

每當我從index.html註釋掉<script src="js/dashboard/statbox.component.js"></script> 一切正常,但statbox控制器沒有加載。

(全項目是在這裏:Github: carloworks/masher - 一個可以克隆並運行配置文件「開發」啓用的春天。)

+0

請添加HTML代碼中調用這兩個組件 – Karim

+0

@Karim編輯,對不起我的壞 –

回答

6

Error: [$compile:multidir] Multiple directives [statbox, statbox] asking for template on

此錯誤最有可能發生在你包括.js兩次在食指和編譯器在綁定指令時不知道要選擇哪個模板。

你應該檢查:

  • 編譯的HTML頁面,看看你是否兩次調用statbox.js
  • 確保你沒有在你的代碼多點,你 定義相同.component('statbox',{})
+0

我沒有將任何兩次JS文件 –

+0

我談論的statbox .js文件 – Karim

+0

所以我應該將其刪除,只是否包含儀表板?那麼statbox的控制器如何工作呢? –

1

這裏的派對遲到了,但在我的情況下,它的發生是因爲我愚蠢地將指令命名爲與傳遞給它的變量相同的東西,所以當指令被使用時,它試圖遞歸真正包括自己!

0

我有這個問題與Typescript。我重命名了一些ts文件和visual studio(2015)保留了舊生成的js文件。不知何故,角度使用新的和舊的js文件,並且我結束了這個錯誤。我做了一個乾淨的(刪除所有生成的js文件),構建和它的工作!