在AngularJS中是否有类似于jQuery的$.load()
的方法?我想要从另一个域名拉取数据(即将应用程序发布在一个域名上,但从完全不同的地址加载内容)。
在AngularJS中是否有类似于jQuery的$.load()
的方法?我想要从另一个域名拉取数据(即将应用程序发布在一个域名上,但从完全不同的地址加载内容)。
jQuery的使用方法并不适用于Angular,你在那里找不到load
的等价物(如果你非常需要,可以使用jQuery代替jqLite)。
Angular建议在类似的情况下使用ngInclude指令。否则,您需要编写自己的指令,并将$http
请求的结果写入元素中,特别是如果您需要更多控制。
如果您想要“从特定div获取内容”,您仍然需要加载jQuery以便在响应上使用选择器,以下是load
的等价物:
app.directive('load', function ($http, $compile) {
return {
link: function (scope, element, attrs) {
$http.get('link.htm').success(function (response) {
var contents = angular.element("<div>").html(response).find("#someelement");
element.empty().append($compile(contents)(scope));
});
}
}
});
angular.module('YourModule', [])
.controller('YourController', function($http){
// You can write some code here !!
//$http.get(...
//$http.post(...
});
我使用刷新指令并在点击事件中调用编译,这对我起作用了。
.directive('refreshConfirm', function($http,$compile) {
return {
restrict: 'A',
link: function postLink(scope, element, attrs) {
element.bind('click', function () {
$http.get(page_url).then(successCallback, errorCallback);
function successCallback(response){
//success code
var ty=response.data;
var appi=angular.element(document.querySelector('#page_content')).html($compile(ty)(scope));
}
function errorCallback(error){
//error code
alert('error');
}
});
}
};
})
我觉得您可以使用 ng-include 来实现。 它有一个内置的 onLoad 方法,您可以使用 $http 或 $resource 模块从远程地址调用以获取数据。