解决ui-router插件的模板加载问题

angular-ui-router插件提供了“嵌套作用域等规则”等有用的特性,但是它的最后一个版本存在一个严重的问题:不能正确加载templateUrl指定的文件。其实这是一个低级错误导致的:

this.fromUrl = function (url, params) {
    if (isFunction(url)) url = url(params);
    if (url == null) return null;
    else return $http.get(url, {
        cache: $templateCache
    }).then(function (response) {
        return response.data;
    });
};

其中的关键问题出在这句:

$http.get(url, { cache: $templateCache })

他错误的调用了$http.get,因为第二个参数是传给服务器的url params,而cache等选项应该出现在第三个参数中!所以,把这句话改为

$http.get(url, {}, { cache: $templateCache })

就可以了。

你可能感兴趣的:(AngularJs)