有时我会看到形容词“可重用”用于描述角度指令。这有点令人困惑,因为有时它意味着可以在您的应用程序中重复使用,有时它意味着跨所有应用程序。如果是后者,那么是否存在已经由其他人创建的大型指令库,从而使您必须编写自己的指令的概率非常小? (例如数百条指令与ng-model或ng-show一样有用)
假设应用程序间可重用性需要scope: true
的指令,而“全局”可重用性使用隔离范围是否正确?
我目前正在编写指令的方式是特定于应用程序的,它们大多只是使用模板和转换来打包复杂的重复html(w /使用隔离范围传递的变量),但我觉得“真正的”指令就像ng-模型。所以只是想知道“可重用”背后是否有两个含义,一个允许你在任何地方使用超级通用指令,另一个是“半可重复使用”,这有助于保持你的代码整洁,但是太具有特定应用性,无法在其他任何地方使用。 / p>
答案 0 :(得分:1)
我会说你的大部分指令都不能在其他应用程序中重复使用,因为大多数指令都包含一些特定于你的应用程序的逻辑。但是,能够在您的应用程序中重用您的指令,或者您创建的具有相同应用程序逻辑的其他应用程序仍然是一个很大的好处。
可在不同应用中重复使用的指令往往是标签,地图,自动填充等等。如果您要查找类似的UI小部件,AngularUI是一个值得关注的好地方。
您不必在指令中使用scope: true
即可重复使用它们。例如ng-model
非常可重用(在不同的应用程序之间),但它没有孤立的范围。设置scope: true
的情况是,当您开发一个需要在作用域上添加属性的指令时,您需要一个隔离的作用域,以避免使用该作用域的作用域属性与作用域属性冲突的风险。指令。