Angularjs - 属性文件的$ http.get始终返回404

时间:2015-08-31 17:45:37

标签: angularjs

也许我在这里做错了,因为我无法完成这项工作。我错过了什么吗?

services.js

$http({
    method : 'GET',
    url : 'angular.properties'
}).success(function (data, status, headers, config) {
    console.log("good");
}).error(function (data, status, headers, config) {
    console.log("error: " + data); // It's printing this.
});

angular.properties

{ 
    "url": "http://localhost", 
    "port": "",
    "default_language": "es" 
}

应用结构

app structure

错误

enter image description here

Gruntfile.js

'use strict';

module.exports = function (grunt) {

  grunt.initConfig({
    connect: { 
      server: {
        options: {
          port: 9000,
          base: 'app/'
        }
      }
    },
    watch: { 
      project: {
        files: ['app/**/*.js', 'app/**/*.html', 'app/**/*.json', 'app/**/*.css'],
        options: {
          livereload: true
        }
      }
    },
  });

  grunt.loadNpmTasks('grunt-contrib-connect');
  grunt.loadNpmTasks('grunt-contrib-watch');

  grunt.registerTask('default', ['connect', 'watch']);

};

ANSWER

文件夹'app'的内容是我应该放在我的服务器上的内容。所以我只需要app的内容,我的angular.properties就在这个文件夹之外。那是错误的。现在正在工作:)这个的正确结构是:

enter image description here

2 个答案:

答案 0 :(得分:0)

我认为您的main.js是您的服务,因此您实际上是从/module而不是/app启动您的网站,这意味着您的.properties文件存在于以下目录中网站的根源。

如果您将angular.properties文件移到module目录中,原始代码应该有效。

答案 1 :(得分:0)

我建议将angular.properties定义为值。您也可以将其声明为常量,但之后只能将其注入控制器和服务中。

angular.module(NAME).value('properties', { 
    "url": "http://localhost", 
    "port": "",
    "default_language": "es" 
});

通过这种方式,您可以轻松地将其注入您的服务,然后在通话中使用它

$http({
    method : 'GET',
    url : properties.url
}).success(function (data, status, headers, config) {
    console.log("good");
}).error(function (data, status, headers, config) {
    console.log("error: " + data); // It's printing this.
});