jQuery .load() 等效 AngularJS

jQuery .load() equivalent AngularJS

jQuery中是否有等同于$.load()的AngularJS?我希望能够从另一个域中提取内容(即 post 一个域上的应用程序,但从一个完全独立的地址加载内容)。

我想您可以使用 ng-include . It has got a built-in onLoad method you can call to get your data from the remote address by using $http 或 $resource 模块来完成。

Is there an AngularJS equivalent to $.load() in jQuery?

一般情况下,可以在angularjs的controller中写一些代码,而不是jQuery的$.load函数。

您的代码将是这样的。

angular.module('YourModule', [])
.controller('YourController', function($http){
    // You can write some code here !!
    //$http.get(...
    //$http.post(...
});

I want to be able to pull from another domain (i.e. post the app on one domain, but load content from a completely separate address).

我的建议取决于您的内容是否包含 HTML 标签。

如果不包含 HTML 标签,您可以像上面那样编写代码。

如果包含 HTML 标签,我建议编写一些自定义指令代码。

jQuery 的使用方法并不真正适合 Angular,你不会在那里找到 load 等价物(你显然可以使用 jQuery 而不是 jqLit​​e,如果你非常想要它)。

Angular 建议将 ngInclude 指令用于类似的副手场景。否则,您需要制定自己的指令并将 $http 请求的结果写入元素,尤其是在您需要更多控制的情况下。

如果你想 'get content from a particular 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));
            });
        }
    }
});

我制作了刷新指令并通过编译调用点击事件,它对我有用

.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');
                }                       

            });
        }
    };
})