发表于: 2017-04-22 18:44:35

1 1270


今天完成的事情:

继续进行angular表单验证的学习和实践,进行angular的scope的学习和使用。


明天的计划:

继续完善company,position页面的功能编写,学习使用更多的angular指令。


遇到的问题:

1 之前习惯了通过jq操作dom来写自己想要的功能,现在使用angular感觉很不习惯,总是忍不住使用jq:

 查阅了相关资料,都建议不要混用ng与jq,ng与jq的不同主要在于:

jquery修改元素是通过手工操作dom,ng修改了数据就自动同步到dom 比如有一个列表要展现:

<ul ng-repeat="i in list"><li>{{i}}</li></ul>

ng代码:$scope.list = [1,2,3], 修改list $scope.list[2] = 4

dom的ul第3个li就自动变成4了

而jq,代码大概需要:

list[2] = 4

$('ul').html('')

$.each(list, function(i,v){ $('ul').append('....') })

ng执行要把数据修改了,html就自动变了,jq的话修改数据了还需要自己修改html而且,ng中,html(比如表单的input的value)变了后,数据自动变了,而jq还需要var data = $('input').val()。


2 在编写list页时需要用到scope,但对它不是很理解,google了解了下它的意义用法:

   作用域是一个指向应用模型的对象,它是表达式的执行环境。作用域有层次结构,这个层次和相应的 DOM 几乎是一样的。作用域能监控表达式和传递事件。在 HTML 代码中,一旦一个 ng-app 指令被定义,那么一个作用域就产生了,由 ng-app 所生成的作用域比较特殊,它是一个根作($rootScope),它是其他所有$Scope 的最顶层。

   除了用 ng-app 指令可以产生一个作用域之外,其他的指令如 ng-controller,ng-repeat 等都会产生一个或者多个作用域。此外,还可以通过 AngularJS 提供的创建作用域的工厂方法来创建一个作用域。这些作用域都拥有自己的继承上下文,并且根作用域都为$rootScope。在生成一个作用域之后,在编写 AngularJS 代码时,$scope 对象就代表了这个作用域的数据实体,我们可以在$scope 内定义各种数据类型,之后可以直接在 HTML 中以 {{变量名}} 方式来让 HTML 访问到这个变量。


收获:

angular更熟练了,虽然还是很想用jq。



返回列表 返回列表
评论

    分享到