簡體   English   中英

Angular ng-view中的控制器定義

[英]Controller definition inside Angular's ng-view

我有一個使用ngRoute模塊的Angular 1.3應用程序。 我希望能夠在與視圖相同的文件中定義一個控制器,但是由於某些原因,Angular無法識別它:

view.html:

<script>
  angular.module("app").controller("fooController", function() {});
</script>
<div ng-controller="fooController"></div>

module.js:

angular.module("app", ["ngRoute"]);
// ...

index.html:

<!-- ... -->
<body>
    <div ng-view></div>
    <script src="angular.js"></script>
    <script src="angular-route.js"></script>
    <script src="module.js"></script>
</body>
<!-- ... -->

上面的設置引發錯誤:參數'fooController'不是一個函數,未定義。

當控制器可以定義為全局功能時,Tt在1.3之前工作。 此外,當$controllerProvider.allowGlobals();時,不會出現此問題$controllerProvider.allowGlobals(); 在模塊配置期間調用,並且將控制器定義為全局功能。

我知道在HTML文件中定義控制器不是最好的主意,但是在這種情況下,我有充分的理由。

任何幫助將不勝感激。

編輯:這是顯示問題的工具: http ://plnkr.co/edit/JU350xL7X9ryF3S72o6s

單擊那里的鏈接以更改路線並查看瀏覽器的控制台。

該錯誤表明您/ Angular首次嘗試使用控制器時尚未實例化該控制器。

我的猜測是您在ngRoute定義中引用了控制器,而ngRoute模塊在顯示視圖之前試圖覆蓋控制器的依賴性。

如果您要更新問題以包括路由配置,則可能會更明顯。 一個有效的(或無效的)Plnkr.co演示會更好。

我為此在Github上創建了一個問題: https : //github.com/angular/angular.js/issues/11384 事實證明尚不支持此方案。

暫無
暫無

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

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