控制器:
angular.module('ctrl').controller('TempCtrl',function($scope,$location,$window,$timeout,RestService,CommonSerivce) { $scope.showAppEditWindow = function() { //Binding the directive isolate scope objects with parent scope objects $scope.asAppObj = $scope.appObj; $scope.asAppSubs = $scope.appSubscriptions; //Making Initial Settings CommonSerivce.broadcastFunction('doDirectiveBroadcast',""); };
服务:
angular.module('Services').factory('CommonSerivce',function ($rootScope) { return { broadcastFunction: function(listener,args) { $rootScope.$broadcast(listener,args); } };
指示:
angular.module('directives').directive('tempDirective',function() { return { restrict : 'E',scope:{ appObj:'=asAppObj',appSubs: '=asAppSubs' },link : function(scope,element,attrs) {},controller : function ($scope,Services,CommonSerivce) { //Broadcast Listener $scope.$on('doDirectiveBroadcast',function (event,args) { $scope.setDefaults(); }); $scope.setDefaults = function() { //Setting Default Value alert(JSON.stringify($scope.appSubs)); //Coming as undefined }; },templateUrl:"../template.html" }; });
自定义指令元素:
<temp-directive as-app-obj="asAppObj" as-app-subs="asAppSubs" />
现在,问题是在尝试访问默认方法里面的指令中时,我可以获取一个未定义的值,而数据即将到来并被绑定到DOM.如何访问广播监听器中的隔离范围并修改指令模板HTML?还有另一个处理这个问题的人吗?