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

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

吳-重復完成活動

吳-重復完成活動

吳-重復完成活動我想用表調用一些針對div的jQuery函數。該表由ng-repeat.當我召喚它的時候$(document).ready()我沒有結果。也$scope.$on('$viewContentLoaded', myFunc);幫不上忙。有什么方法可以在ng重復填充完成后立即執行函數嗎?我讀過關于使用自定義的建議directive但我不知道怎么用它和我的dv.
查看完整描述

3 回答

?
肥皂起泡泡

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

實際上,您應該使用指令,并且不存在與ng-重復循環結束相關聯的事件(因為每個元素都是單獨構造的,并且具有自己的事件)。但是,使用指令可能是您所需要的全部;(B)您可以使用一些ng-重復特定屬性來使您的“onngRepeat Finish”事件。

具體來說,如果您只想將事件樣式/添加事件添加到整個表中,那么可以在包含所有ngRepeat元素的指令中這樣做。另一方面,如果要具體處理每個元素,可以在ngRepeat中使用一個指令,在創建每個元素之后,它將對每個元素起作用。

然后,有$index$first$middle$last屬性可用于觸發事件。所以對于這個HTML:

<div ng-controller="Ctrl" my-main-directive>
  <div ng-repeat="thing in things" my-repeat-directive>
    thing {{thing}}  </div></div>

您可以使用如下指令:

angular.module('myApp', []).directive('myRepeatDirective', function() {
  return function(scope, element, attrs) {
    angular.element(element).css('color','blue');
    if (scope.$last){
      window.alert("im the last!");
    }
  };}).directive('myMainDirective', function() {
  return function(scope, element, attrs) {
    angular.element(element).css('border','5px solid red');
  };});

在這里看到它的作用柱塞..希望能幫上忙!


查看完整回答
反對 回復 2019-06-18
?
拉丁的傳說

TA貢獻1789條經驗 獲得超8個贊

如果您只是想在循環結束時執行一些代碼,那么這里有一個稍微簡單一些的變體,它不需要額外的事件處理:

<div ng-controller="Ctrl">
  <div class="thing" ng-repeat="thing in things" my-post-repeat-directive>
    thing {{thing}}  </div></div>
function Ctrl($scope) {
  $scope.things = [
    'A', 'B', 'C'  
  ];}angular.module('myApp', []).directive('myPostRepeatDirective', function() {
  return function(scope, element, attrs) {
    if (scope.$last){
      // iteration is complete, do whatever post-processing
      // is necessary
      element.parent().css('border', '1px solid black');
    }
  };});

看現場演示。


查看完整回答
反對 回復 2019-06-18
?
莫回無

TA貢獻1865條經驗 獲得超7個贊

不需要創建指令,特別是只需要創建一個ng-repeat全部事件。

ng-init對你有魔力嗎。

  <div ng-repeat="thing in things" ng-init="$last && finished()">

這個$last確保,那finished只有當最后一個元素被呈現到DOM時才會觸發。

別忘了創造$scope.finished事件。

編碼愉快!

如果您還想調用finished如果數組中沒有項,則可以使用以下方法變通

<div style="display:none" ng-init="things.length < 1 && finished()"></div>//or<div ng-if="things.length > 0" ng-init="finished()"></div>

只需在ng-repeat元素。它將檢查數組是否沒有任何值,并相應地調用函數。

例如:

<div ng-if="things.length > 0" ng-init="finished()"></div><div ng-repeat="thing in things" ng-init="$last && finished()">


查看完整回答
反對 回復 2019-06-18
  • 3 回答
  • 0 關注
  • 680 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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