2015-05-27 38 views
0

我需要獲取類(.item-title)的值/文本,但類不能立即使用,它通過角度加載。我嘗試使用window.load在嘗試獲取值之前加載頁面,但這不起作用,因爲該類沒有值,所以它變爲空白。一旦頁面加載,然後該類確實有一個值。一旦頁面加載,我可以使用Chrome控制檯輸出.item-title就好了。有沒有辦法讓這個函數在類(.item-title)填充後運行?該項目具有相同的ID值,因此這也是一個選項。謝謝!!!獲取類的值在加載後填充

通過一個簡單的JS調用參考: /App/lib/angulartics/angulartics-mixpanel.js」

的angulartics-mixpanel.js全部內容:

(function(angular) { 
'use strict'; 

angular.module('angulartics.mixpanel', ['angulartics']) 
.config(['$analyticsProvider', function ($analyticsProvider) { 

    angulartics.waitForVendorApi('mixpanel', 500, '__loaded', function  (mixpanel) { 
     $analyticsProvider.registerPageTrack(function (path) { 
      var properties = { 
       'Page': $('.item-title').text() 
      }; 
      mixpanel.track("Page Viewed", properties); 
     })); 
    }); 

}]); 
})(angular); 
+0

爲什麼不使用ng模型? – PhuLuong

+0

顯示您的HTML。此代碼片段放置在哪裏? – Zee

+0

謝謝你的建議,我已經添加了更多的腳本。我試圖簡化它,但這可能使它更加混亂。對於那個很抱歉! –

回答

0

您也可以使用$timeout,要麼沒有延遲值,因爲它等待,直到其他所有事情完成之前完成發射,或者如果需要延遲時間。不要忘記首先注入$超時到您的控制器!

我已修改這個寶st來包含(我認爲)你的模塊模式的正確實現。 (更多關於依賴注入here

(function (angular) { 
    'use strict'; 

    angular.module('angulartics.mixpanel', ['angulartics']).config(['$analyticsProvider', '$timeout', function ($analyticsProvider, $timeout) { 

     angulartics.waitForVendorApi('mixpanel', 500, '__loaded', function (mixpanel) { 
      $analyticsProvider.registerPageTrack(function (path) { 
       $timeout(function() { 
        var properties = { 
         'Page': $('.item-title').text() 
        }; 
        mixpanel.track("Page Viewed", properties); 
       },1000); 

      }); 
     }); 

    }]); 
    })(angular); 
+0

非常感謝您的協助,Max!我是Angular的新手,所以我坐在我的褲子旁邊。 :-)我編輯了我的原始示例以顯示更多我正在嘗試執行的操作。我不確定如何在這個例子中注入$ timeout。我可以添加$超時爲這樣的事: $超時($ analyticsProvider.registerPageTrack(函數(路徑){ 但我怎麼注入$超時謝謝 –

+0

我不熟悉Angulartics或menthod?! waitForVendorApi(它在調用函數之前似乎有500毫秒的延遲),但是...這就是我相信你會在你的實現中使用$ timeout的方法,你可能還想嘗試將500ms延遲增加到1000或1500 LMK。 – MaxRocket