user2404597
user2404597

Reputation: 508

Access Angular $scope in plain javascript

I have a Controller which has something like this...

angular.module('kZoneApp').controller('DemandController', ['$http', '$scope', '$rootScope', 'dataFactory', '$window', '$routeParams','$sce', function ($http, $scope,$rootScope, dataFactory, $window, $routeParams,$sce) {

    $scope.channel = $routeParams.channel;

now within my page.html, I want to do the following....

<script>
 YoutubeVideoPlayer.openVideo('{{channel}}');
</script>

please note, I am using Routes, and page.html is loaded into my ng-view Via a Route.

<div id="myView" class="reveal-animation" ng-view></div>

I tried below code, but it returns undefined....

$().ready(function () {
   var  channel = angular.element("#myView").scope().channel            
   YoutubeVideoPlayer.openVideo(channel);
})

How can I get the value of Channel within my Template View?

Update

below works...but I am sure there has to be a cleaner solution

    setTimeout(function () {
        alert(angular.element("#myView").scope().channel)
    }, 500);

Upvotes: 2

Views: 448

Answers (1)

ibrahimbayer
ibrahimbayer

Reputation: 262

A workaround solution should be creating a variable before your Angular.module definition.

var scopeInAngular = null;

and inside controller assign controller to your variable.

scopeInAngular = $scope;

then if you manipulate anything inside angular view use

scopeInAngular.$apply();

Upvotes: 1

Related Questions