Определение синтаксиса определения директивы

0

Если я объявляю следующую область выделения в определении директивы:

scope: {
    state: '=', 
},

Справедливо ли утверждать, что = связывает свойство state в области изоляции с значением возвращаемого выражением, связанным с атрибутом с именем state в объявлении директивы, выполняемым в родительской области?

  • 1
    Документация объясняет это следующим образом: «localModel (= состояние) будет отражать значение parentModel (= состояние) в родительской области» . Скобки добавлены мной.
Теги:

1 ответ

1
Лучший ответ

Например, например, ваша директива подобна приведенной ниже,

<div ng-controller="testCtrl">
    <directive-name state="scope_variable"></directive-name>
</div>

то, если мы будем использовать это

scope: {
    state: '=', 
},

атрибут state в директиве должен быть переменной $scope (testCtrl's), если его переменная scope, то state указывает на ту же переменную в области testCtrl.

или выражение для ex like ...state="'scope_variable'"... тогда это String и не указывает на переменную области видимости, а также если вы определили ее как ...state="1+2"... то это выражение, так что переменная state внутри области директивы равна 3.

надеюсь, что это имеет смысл.

вот демонстрация.

заметка

если мы определяем директиву как единую область scope: {} области scope: {} то угловое будет создавать scope of testCtrl область из ее непосредственного родителя, (родительская область в предыдущем примере - scope of testCtrl).

см. консоль предоставленной демонстрации и см console.log(scope.$parent.name); указывает на область $scope.name области MainCtrl.

  • 0
    Да, это имеет смысл, но можете ли вы подтвердить, что мое описание в вопросе верно? В частности, что выражение оценивается в родительской области.
  • 0
    я обновляю ответ, пожалуйста, проверьте его. :), то, что они ссылаются на parent scope это область действия testCtrl в примере.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню