我已经开始使用 AngularJS,但我很难理解指令和范围。
如果我理解正确,您创建指令来创建包含修改 DOM 的行为和逻辑的可重用组件?
那么指令是否将服务注入其中?
或者您是否使用带有注入服务的指令的控制器?
我想我真的在指令与控制器和服务以及范围之间的关系上苦苦挣扎。
是否有任何好的教程以易于掌握的方式解释这一点?
我已经开始使用 AngularJS,但我很难理解指令和范围。
如果我理解正确,您创建指令来创建包含修改 DOM 的行为和逻辑的可重用组件?
那么指令是否将服务注入其中?
或者您是否使用带有注入服务的指令的控制器?
我想我真的在指令与控制器和服务以及范围之间的关系上苦苦挣扎。
是否有任何好的教程以易于掌握的方式解释这一点?
您可以将服务注入指令或控制器。帮助我的一件事是听说DOM 操作应该发生的唯一位置是在指令中。
控制器应该是视图和服务之间的粘合剂,并且基本上处理视图行为。他们应该很瘦
服务管理独立于视图的逻辑(并且是单例)。
因此,请多考虑声明性,少一些迭代。 总体而言,在模型中表示状态。然后设置绑定,以便您可以更改模型并自动更改视图 (来自:http ://www.youtube.com/watch?v=oJoAnVRIVQo )
您可以查看 Angular 团队的 youtube 频道: http ://www.youtube.com/user/angularjs
这里有一些很好的教程:http ://egghead.io
服务旨在在整个应用程序中保持状态。- 大多数时候它们将存在于你的控制器中 - 它们可以被注入到你的指令中
控制器旨在使用从视图传入的值执行业务/应用程序逻辑。
指令可用于: - 创建可重用组件 - 向 DOM 或表单添加行为 http://docs.angularjs.org/api/ng.directive:ngModel.NgModelController
范围是指令或控制器可以访问的应用程序中的上下文。- 对于控制器,范围仅限于分配给它的 DOM 元素及其子元素。- 使用指令,作用域可以是与控制器的作用域相同的作用域,也可以是它自己的作用域(与所有其他作用域隔离),或者它自己的作用域原型继承自其父作用域。
试图理解AngularJS的概念
请阅读Josh David Miller 撰写的此回复。
我认为这对于了解 jQuery 但仍是 AngularJS 初学者的人来说将是一个好的开始。
如果我理解正确,您创建指令来创建包含修改 DOM 的行为和逻辑的可重用组件?
指令是 AngularJS 中最困难的部分(至少对我来说)。当然,您可以对指令进行服务注入,例如:
app.directive('changeMe', ['$compile', 'myService', function($compile, myService){
return {
restrict: 'CA',
link: function (scope, element, attrs) {
scope.value = myService.value;
}
}
}]);
服务
服务的主要好处是它提供了代码重用的正式机制。任何共享的业务逻辑都可以转移到服务中,通过避免代码重复来提高代码的可维护性。实用程序之类的服务,您可以获取它们(所有服务应编写在单独的 JS 文件中)并轻松导入其他项目。