亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當ng-重復完成時調用一個函數。

當ng-重復完成時調用一個函數。

ABOUTYOU 2019-06-18 13:50:54
當ng-重復完成時調用一個函數。我試圖實現的基本上是一個“onng重復完成的呈現”處理程序。我能夠檢測它何時完成,但我不知道如何從它觸發一個函數。檢查小提琴:http://jsfiddle.net/paulocoelho/BsMqq/3/JSvar module = angular.module('testApp', [])     .directive('onFinishRender', function () {     return {         restrict: 'A',         link: function (scope, element, attr) {             if (scope.$last === true) {                 element.ready(function () {                     console.log("calling:"+attr.onFinishRender);                     // CALL TEST HERE!                 });             }         }     }});function myC($scope) {     $scope.ta = [1, 2, 3, 4, 5, 6];     function test() {         console.log("test executed");     }}HTML<div ng-app="testApp" ng-controller="myC">     <p ng-repeat="t in ta" on-finish-render="test()">{{t}}</p></div>回答*最后一步的工作小提琴:http://jsfiddle.net/paulocoelho/BsMqq/4/
查看完整描述

3 回答

?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

使用$valAsync如果您希望在構造DOM之后,但在瀏覽器呈現之前執行回調(即test()。這樣可以防止閃爍-參考文獻.

if (scope.$last) {
   scope.$evalAsync(attr.onFinishRender);}

小提琴.

如果您真的想在呈現后調用回調,請使用$timeout:

if (scope.$last) {
   $timeout(function() { 
      scope.$eval(attr.onFinishRender);
   });}

我更喜歡美元,而不是活動。對于一個事件,我們需要知道事件的名稱并為該事件的控制器添加代碼。有了$val,控制器和指令之間的耦合就更少了。


查看完整回答
反對 回復 2019-06-18
  • 3 回答
  • 0 關注
  • 547 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號