1
我有一個簡單的函數,將數據加載到{{my_content}}
。問題是,我想在{{my_content}}
已更新後執行jQuery腳本myJqueryFunction()
。下面的代碼工作除了myJqueryFunction()
似乎之前被調用(或根本沒有?){{my_content}}
已被更新。有什麼建議麼?如何在模型數據更新後調用jQuery函數?
$scope.showContent = function(){
$http({
url: "my/url",
method: "POST"
})
.success(function (data, status, headers, config) {
$scope.my_content = data;
myJqueryFunction();
})
.error(function (data, status, headers, config) { $scope.status = status; });
};
沒有理由,只要成功處理程序觸發,這將無法正常工作。如果你可以讓一個Plunkr或JSFiddle來顯示這個問題,我會看看,但我看到沒有理由,每次成功處理程序觸發時都不會調用該函數。 – shaunhusain
我認爲它被稱爲,但它需要在''{{my_content}}''已被更新後調用。我如何確保只有在更新了「{{my_content}}」後纔會調用它? –
我在$ scope中找到了一篇很好的文章。$ apply()這個解釋比我知道它的工作原理還要多一點:http://jimhoskins.com/2012/12/17/angularjs-and-apply.html但是它真的取決於你期望jQuery函數能夠做什麼來響應角度變化。例如,如果它正在讀取由瀏覽器計算出的信息,那麼該數據可能不會被更新,您可能需要改爲使用$ timeout作爲建議,這與javascript中的setTimeout一樣,但也調用$ scope。$ apply automatically(或者監聽關於正在應用的CSS的特定瀏覽器事件等) – shaunhusain