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