首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngularJS指令-复指令名

AngularJS指令-复指令名
EN

Stack Overflow用户
提问于 2013-11-19 17:50:05
回答 2查看 1.2K关注 0票数 1

我们开始在应该很大的项目中使用AngularJS,并决定使用“模块化”项目结构和命名约定。一切正常,除了指令。

我们对角部件的命名约定如下:

App.Module.Component.Name

所以当我注册指令时,它看起来像App.Module.directive("App.Module.Directives.DataViewer",function(){...});

指令的问题是,现在我不知道如何在DOM中使用它。

当我将指令限制为"A“并编写HTML <div App.Module.Directives.DataViewer></div>时,当它被浏览器解析时,属性的大小写和指令不起作用。

如果我限制"C“和<div class="App.Module.Directives.DataViewer"></div>,我不知道为什么,但指令仍然不能工作。成功使用该指令的唯一方法是camelCase或对属性使用所有小写,或仅在类上使用camelCase。有什么解决办法吗?

我们没有考虑"E“指令,因为IE8兼容。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-19 18:04:43

为了在HTML中安全使用,大写字母会自动大小写(HTML是不区分大小写的,这会导致混淆,因此标准是只对HTML属性使用小写) (http://docs.angularjs.org/guide/directive)。

所以

代码语言:javascript
复制
App.Module.directive("app.Module.Directives.DataViewer",function(){...});

可以是这样的引用:

代码语言:javascript
复制
<div app.-module.-directives.-dataViewer></div>

请注意,我在"app“中大写了你的第一个字母。

票数 3
EN

Stack Overflow用户

发布于 2013-11-19 18:06:53

应该考虑为应用程序的各个部分创建模块。

您只使用一个模块来使页面无效,一个与ng-app匹配的模块。但是,您可以拥有任意数量的模块,并将这些模块注入主ng-app模块中。

代码语言:javascript
复制
angular.module('App.Module.Component.Name',[])
/* use camelCase for directives*/
.directive('componentNameDataviewer',function....;

然后在标记中:

代码语言:javascript
复制
<div component-name-dataviewer></div>

然后在主ng-app模块中注入模块

代码语言:javascript
复制
var app=angular.module('myApp',['App.Module.Component.Name']);

可能拥有的模块的唯一目的是合并注入,例如只包含指令的模块,或者只包含过滤器或服务的模块

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20078472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档