通过 $.ajax 获取数据,我怎样才能以“角度”的方式做到这一点.$http取代 $.ajax 吗?

getting data via $.ajax how can i do it the "angular" way. Does $http replace $.ajax

本文关键字:ajax 方式做 这一点 取代 角度 http 数据 获取 通过      更新时间:2023-09-26

这是我的代码。

.state("dynamic", {
        url: "/:name",
        controller : 'AppHomeCtrl',
        templateUrl: function (params){
            var myURL = params.name + '.html';
            var validPage = true;
            $.ajax({
                url: myURL,
                async: false })
            .done(function(data) {
                console.log(data);
                if (data.toLowerCase().indexOf("doctype") >= 0) {
                    validPage = false;
                }
            })
            if (!validPage) {
                return 'error.html';
            } else {
                return params.name + '.html';
            }
        },

是否可以重写路由的状态(使用角度 ui-routes)以根据页面是否具有文档类型来获取页面?

上面的代码运行良好。 但是我怎么能用 $http 替换 $.ajax 我一定错过了什么......

 $http.get(url).success(function(data) {
 if (data.toLowerCase().indexOf("doctype") >= 0) {
                validPage = false;
            }
 });

我需要$http加载到更高的地方吗? 等等。

我认为不可能在config块中使用诸如$http之类的服务。

似乎您要做的是处理应用程序不支持的 URL 的请求。如果您使用的是$routeProvider而不是$stateProvider,则可以将所有不匹配的URL请求路由到.otherwise(),但是您也可以在使用$stateProvider时模仿此行为。有关如何执行此操作的更多详细信息,请参阅此堆栈溢出答案。