我是Angular的新手,我想做一个非常基本的例子。
使用ng-repeat
显示一些数据后,我想使用javascript函数中的一些数据。但我不知道何时执行javascript,因为我不会在angular完成后显示我的数据。
Here is a fiddle:我尝试用函数getAssign3
显示Angular显示的一些数据。我什么时候应该调用这个函数?
代码:
<div ng-app="Test">
<h1>Results Table</h1>
<div ng-controller="AssignmentCtrl">
<span ng-repeat="assign in assignments">
<span id="{{assign.id}}">{{assign.title}}</span>
<br/>
</span>
</div>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.min.js"></script>
更多代码:
var test = angular.module("Test", []);
function AssignmentCtrl($scope, $http, $timeout) {
$scope.fetch = function () {
// -- Mock server data..
var data = [{id: 1,title: "Math 1",
},{id: 2, title: "Math 2",
}, { id: 3,title: "Math 3",
}];
$scope.assignments = data;
};
$scope.fetch();
}
getAssign3 = function(){
var dd = $("#3").text();
alert(dd);
}
getAssign3();
答案 0 :(得分:0)
您必须在控制器中添加一个$ on catcher:
$scope.$on('ngRepeatFinished'), function (ngRepeatFinishedEvent) {
console.log "After loop";
}
app.js中的指令:
.directive('onFinishRender', function($timeout) {
return {
restrict: 'A',
link: function(scope, element, attr) {
if (scope.$last) {
return $timeout (function() {
scope.$emit 'ngRepeatFinished'
});
}
}
})
并在您看来:
on-finish-render="myFunc()"