簡體   English   中英

如何在沒有路線的情況下使用AngularAMD

[英]How do I use AngularAMD without routes

我有一個AngularAMD應用程序,我有一個指令(在RequireJS意義上)依賴於該應用程序(它是該指令“生活”的Angular模塊)。

如果我使用路由,並在路由視圖中使用該指令,那么有一個包含controllerUrl的路由,它取決於包含該指令的文件。

如果我不這樣做,那么......

嗯,這是令人沮喪的循環。 如果我告訴應用程序它依賴於指令,我會得到循環依賴。 如果我不這樣做,Angular不知道該指令,並且標簽被忽略。

沒有從AngularAMD再現整個控制器解析機制,我有沒有辦法做到這一點?

我認為可能有兩種情況:

1)您的指令是獨立的,實際上並不依賴於應用程序中的任何內容。

在這種情況下,您可以將它放入自己的模塊中(包括RequireJS和angular):

// my-directive.js
var module = angular.module('my-directive', []);

module.directive('myDirective', [
  ...
]);

// app.js (depends on my-directive.js)
var app = angular.module('myapp', ['my-directive']);

AngularAMD支持此用例,請參閱第三方AngularJS模塊

2)您的指令取決於您的應用程序內的內容。 在這種情況下 - 將它放入同一模塊中(同樣在角度和RequireJS方面)。

// app.js
var app = angular.module('myapp', []);

app.directive('myDirective', [
  ...
]);

3)[更新]另一個解決方案:AngularAMD還支持定義和加載應用程序范圍模塊的特殊情況。

暫無
暫無

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

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