2015-04-21 2 views
1

Теперь мой вопрос заключается в том, как сделать область действия переменной contentOwnerId доступной для всей функции? Пожалуйста, помогите мне, я не могу понять это. Спасибо заранее ..!Как объявить переменную, доступную целой функции в angularjs?

+0

Вы пропускаете закрытие '}' сразу после 'console.log' – qtgye

+1

вы имеете в виду' $ scope.contentOwnerId', как это? – batmaniac7

+0

Да, как сделать область видимости переменной доступной для целого метода init() – Sharathreddy

ответ

2

Вы объявляете contentOwnerId дважды; один раз внутри блока if, один раз за его пределами. Объявляется одна из сторон, но никогда не назначается значение. Он должен быть нулевым, если он показывает нуль.

+0

, если я еще не decalre сохранит сохраненное значение – Sharathreddy

+0

Я сделал cahnges, как вы сказали, но все еще не работает – Sharathreddy

+0

Я вижу только одно объявление 'contentOwnerId ', а затем, в разрешенном обещании, ему присваивается' savedContentOwnerId'. – datamosh

1

Причина, по которой вы получаете contentOwnerId не определено, что это undefined до тех пор, пока обещание getcontentOwnerId() не будет выполнено!

если вы

var contentOwnerId = "before resolving the promise"; 

в начале вашего init() вы, вероятно, эта строка записывается в консоль, а не undefined

0

$scope.contentOwnerId использования вместо var contentOwnerId.

См. $scope.contentOwnerId доступен для всего контроллера i.e ListSharedContentCtrl.

нормальная Переменная JavaScript ограничены функциями, где, как $scope доступен для всей CONTROLLER

метод
+0

Я попытался использовать $ scope, но он не работает ... – Sharathreddy

0

.then() принадлежит обещание. Это означает, что он не будет выполнен немедленно, но позже в угловом жизненном цикле.

Ваша консоль.log() всегда регистрируется как «неопределенная», потому что ваша переменная не будет инициализирована там. Вы можете попробовать это войти значение:

$scope.$watch( 
    function() { return contentOwnerId; }, 
    function(newContentOwnerId, oldContentOwnerId) { 
     console.log(newContentOwnerId); 
    } 
); 
+0

Где реализовать этот код. Я понял, что значение может не быть инициализировано раньше, потому что я разрешаю его из обещания. Есть ли какой-либо метод привязки значения к contentOwnerId, как только обещание будет разрешено ..? – Sharathreddy

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