Двусторонняя привязка области действия не ведет себя так, как ожидалось

В моем приложении angularJS я использую директиву. Эта директива должна знать значение переменной в области приложения. Поскольку переменная области приложения должна изменяться, когда директива обновляет ее, а переменная директивы должна меняться при изменении переменной области приложения, я использовал двустороннюю привязку. В моей директиве:

scope: {
 "selectedObject": "=selectedobject"
}

В моем html:

и в моем контроллере:

$scope.foo = "somevalue";
//$scope.$apply(); Adding this, I get a '$digest already in progress' error

Теперь, когда я пытаюсь прочитать значение selectedObject в моей директиве, он начинается с null вместо "somevalue". Однако изменения, внесенные в область действия директивы, хорошо распространяются на область применения. Как я могу убедиться, что это работает и наоборот? Что, если мой контроллер изменяет значение foo, это изменение распространяется на область действия?

1 ответ

Пожалуйста, прочитайте следующую статью, так как я считаю, что вы попадаете в общую ловушку, и эта статья поможет вам понять вашу проблему

http://nathanleclaire.com/blog/2014/04/19/5-angularjs-antipatterns-and-pitfalls/

licensed under cc by-sa 3.0 with attribution.