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 を使用して) 書き換えて、取得したページに doctype があるかどうかに基づいてページを取得することは可能ですか?

上記のコードは完全に機能します。しかし、どうすれば $.ajax を $http に置き換えることができますか?

 $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。その方法の詳細については、このスタックオーバーフローの回答を参照してください。

于 2013-09-29T17:02:45.413 に答える