试图理解AngularJS的概念

时间:2013-10-12 17:38:45

标签: angularjs

我已经开始玩AngularJS了,我很难理解指令和范围。

如果我理解正确,你创建指令来创建可重用的组件,其中包含修改DOM的行为和逻辑吗?

指令是否将服务注入其中?

或者您是否使用带有注入服务的指令的控制器?

我想我真的在努力解决指令与控制器和服务以及范围之间的关系。

是否有任何好的教程可以用一种易于掌握的方式解释这一点?

3 个答案:

答案 0 :(得分:4)

您可以将服务注入指令或控制器。帮助我的一件事是听到唯一的地方DOM操作应该发生在指令

控制器应该是视图和服务之间的粘合剂,并且基本上处理视图行为。它们应该很薄

服务管理独立于视图的逻辑(并且是单例)。

所以想想更多的声明,更少的迭代。 总体而言,代表模型中的状态。然后设置绑定,以便您可以更改模型并自动更改视图(来自:http://www.youtube.com/watch?v=oJoAnVRIVQo

您可以查看Angular团队的YouTube频道:http://www.youtube.com/user/angularjs

这里有一些很好的教程:http://egghead.io

答案 1 :(得分:1)

服务旨在在整个应用中保持状态。     - 大多数时候它们将存在于您的控制器中     - 它们可以注入你的指令

控制器旨在使用从视图传入的值执行业务/应用程序逻辑。

指令对以下内容非常有用:     - 创建可重用的组件     - 向DOM或Forms添加行为    http://docs.angularjs.org/api/ng.directive:ngModel.NgModelController

范围是指令或控制器可以访问的应用程序中的上下文。     - 使用控制器,范围仅限于DOM      分配给它的元素及其子元素。     - 使用指令,范围可以与控制器范围相同      或者是它自己的范围(与所有其他范围隔离),或者它自己的范围      原型继承自其父范围。

我推荐http://egghead.io

上的视频

答案 2 :(得分:1)

  

试图理解AngularJS的概念

请阅读Josh David Miller撰写的 THIS 回复。

我认为对于谁知道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文件中)并轻松导入其他项目。