0

在 AngularJS 中思考”如果我有 jQuery 背景?非常好地解释了 Angularjs 方法优于 jQuery 方法,用于 DOM 操作。

从上面的解释中,我仍然不清楚关于 AngularJS 方法的观点,它说,不要设计你的页面,然后用 DOM 操作来改变它


通过重复答案的主要部分(上图),

jQuery方法

对于设计/视图(其中的一部分,如下所示):

<ul class="messages" id="log">
</ul>

您操纵(如下所示)它是 DOM,以使页面动态化,

$.ajax({
  url: '/myEndpoint.json',
  success: function ( data, status ) {
    $('ul#log').append('<li>Data Received!</li>');
  }
})

但更重要的是,通过手动引用和更新它的 DOM 节点进行操作,这是一个副作用。这意味着,设计/视图的变化(ul比如说div)将改变 DOM 操作逻辑(to $('div#log'))。AngularJS 方法可以在这里提供帮助。

AngularJS 方法:

视图可能如下所示:

<ul class="messages">
    <li ng-repeat="entry in log">{{ entry.msg }}</li>
</ul>

和控制器代码(如下所示),不会手动引用DOM 节点并使网页动态化。AngularJS 控制器使用 model( $scope)。

$http( '/myEndpoint.json' ).then( function ( response ) {
    $scope.log.push( { msg: 'Data Received!' } );
})

这(上图)是使用 Angular 而不是 jQuery/Javascript 的主要优势


所以,

使用 AngularJS 方法,我们将指令(ngRepeat)分配给现有的视图/设计(li)。控制器代码li通过 model( ) 操作 view( $scope),不引用 DOM 节点。


问题:

关于答案的第一部分,AngularJS 如何停止设计页面(视图),然后通过模型使用控制器更改 DOM?

4

0 回答 0