【发布时间】:2014-09-02 19:54:32
【问题描述】:
我正在执行一个获取一些信息的 ajax 调用:
<span id="test" abc-dir="test"> </span>
现在,我还有一个 angular 指令,我需要在上述通过 ajax 返回的信息上运行。
问题是:Angular 指令首先被启动并尝试在 DOM 中找到 abc-dir,但是由于 Ajax 调用未完成,它什么也不做。如何先触发 ajax 调用,然后调用 Angular 指令?
我的 HTML 代码:
<body ng-app="TestApp" ng-controller="TestCtrl" ng-init="init()">
<div class="test" id="testid"></div>
<script>
require( ['jquery'], function($) {
$.ajax({
type: "GET",
url: "....",
success: function(data) {
document.getElementById('testid').innerHTML = data
}
});
});
</script>
我的 Angular 指令代码如下:
angular.module('TestApp', ['ngSanitize'])
.directive('abcDir',['abcPropertyMap',function(abcPropertyMap) {
return {
restrict: 'A',
template: function(elm,attrs){
var value = abcPropertyMap[attrs.abcProperty];
return '<span ng-bind-html="'+value+'">x</span>';
}
}
}])
【问题讨论】:
-
当 Angular 已经提供
$http时,为什么还要使用 jquery ajax?
标签: angularjs angular-directive