这是我的代码:
Inspectr.controller('Devices',function ($scope,$http) {
$http({
url: 'http://xxeexxx.com/app/inspectr.php',//data
method: "POST",
cache : true,
data: JSON.stringify({ request:'devices', list: 'all' }),
headers: { 'Content-Type': 'application/json' }
}).then(function (data, status, headers, config) {
$scope.cards = data.data;
runAllMyJqueryScriptsFromHere();
})
});
我正在通过$ routeProvider将一些JSON数据加载到我拥有的模板中。 在渲染模板并加载所有数据后,我需要一种方法来执行jQuery插件。
功能
runAllMyJqueryScriptsFromHere()
包含加载$ http后需要触发的所有jquery。
答案 0 :(得分:0)
只需添加超时即可。顺便说一句,没有'onrender'浏览器事件,因此在浏览器重绘完成后无法注册您的自己。您必须使用$ timeout来超时执行函数。
Inspectr.controller('Devices',function ($scope,$http, $timeout) {
$http({
url: 'http://xxeexxx.com/app/inspectr.php',//data
method: "POST",
cache : true,
data: JSON.stringify({ request:'devices', list: 'all' }),
headers: { 'Content-Type': 'application/json' }
}).then(function (data, status, headers, config) {
$scope.cards = data.data;
$timeout(function(){
runAllMyJqueryScriptsFromHere();
}, 0); // time here
})
});
您还可以注册onload事件:
<div ng-view data-onload="onloadfunctionfromscope"></div>
模板加载后将评估哪些内容: http://docs.angularjs.org/api/ng。$ rootScope.Scope#$ methods_ EVAL 但你必须使用$ timeout。
答案 1 :(得分:0)
这就是它的完成方式
Inspectr.controller('Devices',function ($scope,$http) {
$http({
url: 'http://xxeexxx.com/app/inspectr.php',//data
method: "POST",
cache : true,
data: JSON.stringify({ request:'devices', list: 'all' }),
headers: { 'Content-Type': 'application/json' }
}).then(function (data, status, headers, config) {
$scope.$apply(function() {
$scope.cards = data.data;
runAllMyJqueryScriptsFromHere();
});
})
});