繁体   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