2015-11-19 3 views
0

Я начал изучать AngularJS 1.4.7, и я не могу полностью понять переменные $ scope. Является ли это переменной внутри углового контроллера «как» общедоступных переменных внутри класса PHP?

Например:

У меня есть 2 функции function1(), function2() в HomeCtrl.js и переменную $scope.img = null; и 2 нг щелкните событие в файле шаблона для вызова этих функций.

В ng-cick случае я вызвать function1 и установить значение $scope.url к somethig

После этого я вызвать function2 и console.log($.scope.url) его retutn нуль. Null - это инициализированное значение этого varaiable.

Я только что установил значение $scope.url в function1 и внутри function2 Значение variabel равно нулю, почему?

Я понятия не имею, почему это происходит.

+0

Не могли бы вы предоставить скрипку? –

+1

Возможно, вам стоит поделиться своим кодом, поэтому у нас есть пример для обсуждения, а не для принятия многих вещей. Это может быть связано с тем, что вы создали экземпляры двух разных HomeControllers, имеющих собственные URL-адреса. – skubski

+0

Да, ты прав. У меня было 2 разных контроллера с $ scope.url variabel, используемым в одном шаблоне. Спасибо :) –

ответ

1

scope является примером controller.

Когда вы объявите controller, scope будет доступен там.

Вы можете получить доступ к объему через controller.

Именно поэтому, когда вы меняете место в controller, изменение будет отражать всюду в этом scope.

+0

Благодарим вас за ответ –

+0

@NagyErvin, добро пожаловать.это решило вашу проблему? –

0

Вы звоните по телефону: $.scope.url? Тогда это проблема, она должна быть $scope.url, без точки между «$» и «scope».

Переменные области не имеют ничего общего с концепцией доступности переменных (public/private/protected/etc).

Это те «магические» переменные, которые могут быть размещены внутри шаблонов с помощью выражений, что позволяет связывание данных в Угловом, то есть, ваш HTML с того, что «волшебной» областью видимости переменными, получает автоматически обновляется угловым , когда вы просто изменяете свои значения внутри своего контроллера, например, в этой функции обратного вызова для ng-click. (На самом деле это не так-то просто, здесь мы приходим к $ watch и $ digest, но если вы не пишете свои пользовательские директивы, а не смешиваете, например, код jQuery с угловым кодом, вы можете не думать об этом пока).

Двусторонние привязки данных, автоматические обновления html - это основная точка переменных $ scope и $ scope.

Сфера применения не и экземпляр контроллера, они разные Угловые объекты.