在jQuery中是否有一个等同于$.load()
的AngularJS?我希望能够从另一个域提取(即在一个域上发布应用程序,但从一个完全独立的地址加载内容)。
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));
});
}
}
});
我估计你可以用ng-include做到这一点。它有一个内置的onLoad方法,你可以调用它来使用$http或$ resource模块从远程地址获取数据。
在jQuery中是否有一个与$ .load()等效的AngularJS?
在正常情况下,您可以在angularjs的控制器中编写一些代码而不是jQuery中的$ .load函数。
你的代码就是这样的。
angular.module('YourModule', [])
.controller('YourController', function($http){
// You can write some code here !!
//$http.get(...
//$http.post(...
});
我希望能够从另一个域提取(即在一个域上发布应用程序,但从一个完全独立的地址加载内容)。
我的建议取决于您的内容是否包含HTML标记。
如果不包括HTML标记,您可以编写如上所示的代码。
如果包含HTML标签,我建议写一些自定义指令代码。
我制作刷新指令并使用编译调用click事件,它对我有用
.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');
}
});
}
};
})