0

这是我的代码。

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

            }
        },

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

上面的代码完美运行。但是我怎样才能用 $http 替换 $.ajax 我必须遗漏一些东西......

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

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

4

1 回答 1

0

我认为不可能$http在块内使用服务,例如config

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

于 2013-09-29T17:02:45.413 回答