4

Вот два фрагмента кода:В чем разница с использованием «точки» в angularjs?

<input type="text" ng-model="data.message"> 
<div>Hello, {{data.message}}</div> 

<div ng-controller="firstCtrl"> 
    <input type="text" ng-model="data.message"> 
    <div>Hello, {{data.message}}</div> 
</div> 

<div ng-controller="secondCtrl"> 
    <input type="text" ng-model="data.message"> 
    <div>Hello, {{data.message}}</div> 
</div> 

и

<input type="text" ng-model="msg"> 
<div>Hello, {{msg}}</div> 

<div ng-controller="firstCtrl"> 
    <input type="text" ng-model="msg"> 
    <div>Hello, {{msg}}</div> 
</div> 

<div ng-controller="secondCtrl"> 
    <input type="text" ng-model="msg"> 
    <div>Hello, {{msg}}</div> 
</div> 

ng-controller здесь создает новые возможности, так что сфера firstCtrl и secondCtrl прототипически наследует от корня объема в обоих случаях. Таким образом, в идеале, когда свойство дочерних элементов перезаписывается, shadows унаследованное значение от родителя, а значение в родительском состоянии остается таким же. Тогда почему два фрагмента работают по-другому?

Кроме того, почему в первом фрагменте, изменяя значение в firstCtrl, также изменяется значение в корневой области?

Plnkr: http://plnkr.co/edit/x4LH4JAOMr9I8bCcSO8Y?p=preview

+4

Это должно ответить на все ваши вопросы. Http://stackoverflow.com/questions/14049480/what-are-the-nuances-of-scope-prototypal-prototypical-inheritance-in-angularjs?rq=1 – Chandermani

+1

Объем корня изменено, потому что firstCtrl прототипно наследует от корневой области. Поскольку firstCtrl модифицирует свойство объекта, он проверяет цепочку прототипов и находит объект в $ rootScope, поэтому он там изменяется. –

+1

Спасибо! Два замечаний выше ясны мои сомнения! – user1624400

ответ

1

dot используется для синхронизации контроллеров, так обновляемые свойства в одной модели приведет к собственности в другие контроллеры будут обновлены тоже.

Во втором фрагменте вы переписываете область действия.

см. this видео, которое объясняет это красиво.

+2

Что я хотел знать, почему такое поведение? Это объясняет это: http://stackoverflow.com/questions/14049480/what-are-the-nuances-of-scope-prototypal-prototypical-inheritance-in-angularjs?rq=1 – user1624400

 Смежные вопросы

  • Нет связанных вопросов^_^