2015-04-30 4 views
0

Я хочу назначить переменную области действия, как вычислить переменную
{{canMoveNext=((checkList.items | filter:NoMoveNextStatus).length==0)}}
canMoveNext директивы изолированной сфера переменной
, но я хочу записать его в JS кода
как я могу писать?
я не хочет использовать функциональные часыправопреемник переменной сферы в JS кода

+0

вы можете просто создать глобальную переменную в JavaScript оконного объекта и сохранить его, но не очень хорошая идея) window.someVar = MYVAR –

ответ

1

Пути распространения переменной директивы с контроллером:

  1. Даже если ваша сфера изолирована, вы можете сделать некоторые переменные передать его, хотя. Здесь вы можете проверить двустороннюю привязку. Проверьте это сообщение о том, как сделать это: link

  2. В противном случае, если это возможно изменить область от изолированных к той же области. Затем переменная должна быть доступна.

  3. В-третьих, если вы не делаете что-то динамическое, это сохранить значение на заводе и включить фабрику в зависимость от директивы и контроллера. Значение должно храниться на заводе каждый раз, когда оно изменяется. (EDIT: это может быть неправильно, поскольку вам нужны часы, которые вы не хотите использовать)

  4. Попробуйте избежать этого с помощью решения 1 или 2, но есть $rootscope, то есть родительский элемент всех областей , вы можете включить его и сохранить там значение. Его как глобальная переменная в js, но вы всегда внутри angularjs. Кроме того, вы можете напрямую использовать это как:

    $scope.$root.someValueThatBehavesLikeGlobal = "value";