我正在尝试将 PrettyPrint 与一些 Ajax 数据一起使用。问题是,当调用指令时,数据尚未准备好,因此我得到 undefined variable 输出。
Plunkr:http://plnkr.co/edit/fdRi2nIvVzT3Rcy2YIlK?p=preview
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope,$http) {
$scope.result = $http.get('data.json').success(function(result){
return result.data.dom
})
});
app.directive('prettyprint', function() {
return {
restrict: 'C',
link: function postLink(scope, element, attrs) {
element.html(prettyPrintOne(scope.result))
}
};
});
请您参考如下方法:
使用范围
的$watch
方法:
scope.$watch("result" , function(n,o){
element.html(prettyPrintOne(scope.result));
})
而不是这个:
$scope.result = $http.get('data.json').success(function(result){
return result.data.dom
})
使用这个:
$http.get('data.json').success(function(result){
$scope.result = result.dom;
})