指令加载后调用函数angularjs

迪帕克·班迪(Deepak Bandi)

我有一个隔离的指令,我的控制器看起来像:

app.controller('ZacksController', ['$scope', '$http', 'ngDialog', '$timeout', function($scope, $http, ngDialog, $timeout){
     //some code here
}]);

文件中的HTML如下所示:

<div class="income-older-block" ng-show="selectedAge!=1">
     <income-form></income-form>
</div>

我在相关的HTML文件夹中有一条指令,

app.directive("incomeForm", ['$timeout', function ($timeout) {
   function link($scope) {
      var hello = function () {
        alert("1");
      }
      $timeout(hello, 0);
   }


   return {
      restrict: 'E',
      templateUrl: "app/zacks/your-income/income-form/income-form.html",
      link: link,
      controller: function ($scope, $timeout) {
                                  $scope.$watch("zacks.AgeRet.value",function(newValue,OldValue,scope){
                 if (newValue){
                     alert((newValue));
                 }
             });
      }
   }
}]);

在页面中加载指令后,我想发出警报,该警报出现在初始页面本身。我可以知道该怎么办吗?

实际的问题是我正在使用rz-slider并希望在将指令加载到DOM。之后对其进行初始化,因为它不采用提供的值。还有其他方法可以解决此问题吗?

<rzslider rz-slider-model="zacks.AgeRet.value" rz-slider-floor="zacks.AgeRet.floor" rz-slider-ceil="zacks.AgeRet.ceil"></rzslider>

如果超时有效,我打算初始化类似以下的内容:

$timeout(function () {
    $scope.$broadcast('rzSliderForceRender');
});

更新

在指令中添加了一个控制器,因此现在我可以在移动滑块时获取值,但仍然无法初始化滑块的值。

迪帕克·班迪(Deepak Bandi)

解决方案2

HTML:

<div class="income-older-block" ng-show="selectedAge!=1">
     <income-form></income-form>
</div>

JS:

app.controller('ZacksapiController', ['$rootScope', '$scope', '$http', 'ngDialog', '$timeout', 'dataService', function($rootScope, $scope, $http, ngDialog, $timeout, dataService){

$scope.$watch('selectedAge', function(newValue, oldValue) {        
    if (newValue !== oldValue) {           
            $timeout(function() {
                alert("reCalcViewDimensions");
                $scope.$broadcast('rzSliderForceRender'); // This is not working, but alert works.
            }, 0);

    }
});

更新:

在$ timeout内触发了窗口调整大小事件,但这将是一个临时hack。如果有人帮助我提供真正的解决问题的方法,那就太好了。

$timeout(function() {
     window.dispatchEvent(new Event('resize'));
     $scope.$broadcast('rzSliderForceRender');
}, 0);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

指令加载后调用函数angularjs

来自分类Dev

指令加载后调用函数

来自分类Dev

从AngularJs指令调用函数

来自分类Dev

模态加载angularjs ui引导后调用函数

来自分类Dev

指令加载时无法调用函数

来自分类Dev

调用服务方法后AngularJs更新指令

来自分类Dev

渲染Angular指令后调用js函数

来自分类Dev

AngularJS-ng-init函数完成后的调用指令

来自分类Dev

从$ rootScope中的指令调用函数-AngularJS

来自分类Dev

AngularJS指令链接函数未调用

来自分类Dev

AngularJS在指令模板中调用通用函数

来自分类Dev

AngularJS指令范围函数未调用

来自分类Dev

从控制器调用angularjs指令函数

来自分类Dev

AngularJS从指令设置函数的同步调用

来自分类Dev

从$ rootScope中的指令调用函数-AngularJS

来自分类Dev

从控制器angularjs调用指令函数

来自分类Dev

AngularJS指令作用域函数未调用

来自分类Dev

加载ngFor中的最后一项后调用指令

来自分类Dev

页面加载完成后调用函数

来自分类Dev

加载AJAX后调用Javascript函数

来自分类Dev

活动加载后如何调用函数

来自分类Dev

jQuery-图像加载后的调用函数

来自分类Dev

加载动态内容后调用函数

来自分类Dev

AngularJS指令-如何在异步数据加载后刷新模板

来自分类Dev

在AngularJS指令中页面加载后启用按钮

来自分类Dev

AngularJS指令-如何在异步数据加载后刷新模板

来自分类Dev

在完成Service http调用之前,AngularJS加载指令

来自分类Dev

Angular ng-init函数在指令后加载

来自分类Dev

加载指令时调用初始化函数