Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 解决不启动服务功能的问题_Javascript_Angularjs_Angular Ui Router - Fatal编程技术网

Javascript 解决不启动服务功能的问题

Javascript 解决不启动服务功能的问题,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我是个新手,查阅了相关问题,但找不到任何有用的东西。我希望有人能提供一些见解,因为我花了一整天的时间在这上面,但都没有用: 我正在尝试使用$resource和ui路由器为我的应用程序使用resolve获取数据。问题是,尽管状态似乎加载良好,但从未调用服务方法(调用定义为int-eh resolve属性)。(该州实际上有一个ui网格,因此当前网格显示为空)。应用程序现在使用json服务器提供数据,服务器不显示任何http请求。请在下面找到一些相关代码: 状态提供程序配置: angular.mod

我是个新手,查阅了相关问题,但找不到任何有用的东西。我希望有人能提供一些见解,因为我花了一整天的时间在这上面,但都没有用: 我正在尝试使用$resource和ui路由器为我的应用程序使用resolve获取数据。问题是,尽管状态似乎加载良好,但从未调用服务方法(调用定义为int-eh resolve属性)。(该州实际上有一个ui网格,因此当前网格显示为空)。应用程序现在使用json服务器提供数据,服务器不显示任何http请求。请在下面找到一些相关代码: 状态提供程序配置:

angular.module('carsApp',['ui.router','ngResource','ui.bootstrap','ui.grid']))
.config(函数($stateProvider,$urlRouterProvider){
$stateProvider
//“汽车”状态的抽象状态。使用两个子选项卡创建视图模板。
.state('app.main.car'{
url:“”,
摘要:没错,
观点:{
//子模板(绝对命名)
'contentbar@app.main': {
templateUrl:'views/crid.html',
控制器:“GridController”
},
'subTabs@app.main': {
templateUrl:'views/cars.html',
控制器:'CarController'
}
},
决心:{
//创建名为“cars”的对象属性
//稍后将用于依赖项注入
//在我们的控制器内。注入解析数据所需的任何服务
汽车:['gridFactory',功能(gridFactory){
//返回服务呼叫,即返回承诺
return gridFactory.getCars();
}],
经销商:功能(){
返回{};
}
}
})
.state('app.main.car.all'{
url:“汽车/摘要”,
观点:{
'subTabView@app.main.car': {
templateUrl:'views/summary.html'
}
},
决心:{
汽车:['gridFactory',功能(gridFactory){
//返回服务呼叫,即返回承诺
return gridFactory.getCars();
}],
经销商:功能(){
返回{};
}
}
});
$urlRouterProvider。否则('/');

});我想你们工厂的问题是获取汽车的方法:

请尝试以下操作:

 .service('gridFactory', ['$resource', 'baseURL', function($resource, baseURL) {

    this.getCars = function() {
      var cars =  $resource(baseURL + "cars", null, {
        'query': {
          method: 'GET',
          isArray: true,
          // im setting authroization header here so using this version
          // of query to be able to add headers

        }

       return new Promise(function(resolve, reject){

          var result = [];

          cars.query(function (response) {
             angular.forEach(response, function (item) {
               result.push(item);
             }
          }

          resolve(result);

        })

       })

      });
    }


  }

我想这与你们的有关

我想你们工厂的问题是如何获得汽车的方法:

请尝试以下操作:

 .service('gridFactory', ['$resource', 'baseURL', function($resource, baseURL) {

    this.getCars = function() {
      var cars =  $resource(baseURL + "cars", null, {
        'query': {
          method: 'GET',
          isArray: true,
          // im setting authroization header here so using this version
          // of query to be able to add headers

        }

       return new Promise(function(resolve, reject){

          var result = [];

          cars.query(function (response) {
             angular.forEach(response, function (item) {
               result.push(item);
             }
          }

          resolve(result);

        })

       })

      });
    }


  }

我认为这与您的相关

需要调用
query()
方法并返回
$resource
承诺。默认情况下,$resource方法返回在请求完成后填充的空对象或数组

resolve: {          
      cars: ['gridFactory', function(gridFactory) {
        // Return Service call, that returns a Promise
        return gridFactory.getCars().query().$promise;
      }],
      dealer: ....
您还可以将此调用的一部分移动到服务方法中,并让它返回query()。$promise


需要调用
query()
方法并返回
$resource
承诺。默认情况下,$resource方法返回在请求完成后填充的空对象或数组

resolve: {          
      cars: ['gridFactory', function(gridFactory) {
        // Return Service call, that returns a Promise
        return gridFactory.getCars().query().$promise;
      }],
      dealer: ....
您还可以将此调用的一部分移动到服务方法中,并让它返回query()。$promise



您的应用程序()中是否有名为
app.main
app
的状态?非常感谢您的回复!是的,我喜欢。这只是代码的一部分,希望保持简单。另外,刚刚发现“resolve”对嵌套状态的工作方式有所不同,所以现在就开始研究它。您的应用程序()中是否有名为
app.main
app
的状态?非常感谢您的回复!是的,我喜欢。这只是代码的一部分,希望保持简单。另外,刚刚发现“resolve”对嵌套状态的工作方式有所不同,因此现在就开始研究它。这是一种反模式,在
$resource
已经具有promise属性的情况下使用新的promise链接!调查一下@fah,这个链接的答案充满了误导information@charlietfl仔细看我的答案,我在promise中包含了$resource返回的数据的一些逻辑,例如,
var result
。对于服务来说,没有模式冲突。坏模式正在解决路由系统中的某些问题。嗯?在路由器中解析是非常常见和实用的。为什么不使用内置的
$resource
?无需迭代响应数组,只需将其传递给另一个数组,这是一种反模式,在
$resource
已具有promise属性时使用新promise链接!调查一下@fah,这个链接的答案充满了误导information@charlietfl仔细看我的答案,我在promise中包含了$resource返回的数据的一些逻辑,例如,
var result
。对于服务来说,没有模式冲突。坏模式正在解决路由系统中的某些问题。嗯?在路由器中解析是非常常见和实用的。为什么不使用内置的
$resource
?无需迭代响应数组,只需将其传递给另一个数组即可。这非常感谢您的响应!正确的!我会试试这个,然后回来。我还必须注入$PROMITE,如下所示。这是标准方法还是我不应该这样做?cars\u父项:['gridFactory','$promise',函数(gridFactory,$promise){//返回服务调用,返回承诺返回gridFactory.getCars().query().$promise;}],否…这是一个基本的工作版本。不是抽象的状态,只是一个基本的状态。好的……请注意,父状态中的解析在子状态中已经可用。你不需要再解决同样的问题了,汉克斯!正确的!我一直收到这个错误(这就是为什么我试图“注入”这个“承诺”,但即使这样它也没有消失)错误:[$injector:unpr]未知提供程序: