我正在编写应用程序的指令,以便使用隔离范围来明确定义其在父作用域中的依赖关系。所以我总能在我的HTML组件
中实现这一点<my-directive dependency-one="x" dependency-two="y"></my-directive>
这是我的指令的代码
angular.module("myapp").directive('myDirective', [function() {
return {
restrict: 'E',
scope: {
dependencyOne: '=',
dependencyTwo: '='
},
templateUrl: "path/to/myDirective.html",
link: function($scope){
//here goes the code for linking function
}
}
}]);
但是,我已经阅读了AngularJS社区中的一些最佳实践,声明我们应该尽可能避免使用隔离范围,因为它会增加应用程序的观察者和无用的绑定。只有在编写在应用程序上重用的组件时才使用隔离范围。
据我所知,我们有两种可能性:
我们可以通过这种方式阻止创建新的范围和不必要的绑定,但它会降低指令的HTML标记的可读性和清晰度,现在我们只有类似的东西:
<my-directive></my-directive>
看看这段代码,我不知道该指令需要执行什么,这违反了AngularJS引入的“声明性html”的优势。
有人对这个问题感兴趣吗?
答案 0 :(得分:1)
如果没有隔离范围,那么拥有一个明确的指令API将非常困难。 因此,我并不完全同意“我已经阅读了AngularJS社区中的一些最佳实践,我们应该尽可能避免使用隔离范围,因为它会增加应用程序的观察者和无用的绑定 “
如果您想要明确的依赖关系,您必须选择孤立的范围。 有办法减少手表和绑定的数量。 在这种情况下,以下网址上的内容可能会有所帮助。 @ http://csharperimage.jeremylikness.com/2014/11/the-top-5-mistakes-angularjs-developers.html