Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.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 AngularJS版本1.6.10中的templateUrl中不显示来自控制器的数据_Javascript_Angularjs_Routeparams - Fatal编程技术网

Javascript AngularJS版本1.6.10中的templateUrl中不显示来自控制器的数据

Javascript AngularJS版本1.6.10中的templateUrl中不显示来自控制器的数据,javascript,angularjs,routeparams,Javascript,Angularjs,Routeparams,我开商店只是为了学习角度,但我有问题,我可以在任何地方找到解决办法。该网站位于我的电脑本地。我现在甚至不使用本地主机 我有文件application.js来设置我的站点的路径: 'use strict'; var app = angular.module( 'app' , ['ngRoute','controllers'] ); app.config(['$routeProvider','$httpProvider',function($routeProvider, $httpProvide

我开商店只是为了学习角度,但我有问题,我可以在任何地方找到解决办法。该网站位于我的电脑本地。我现在甚至不使用本地主机

我有文件application.js来设置我的站点的路径:

'use strict';

var app = angular.module( 'app' , ['ngRoute','controllers'] );

app.config(['$routeProvider','$httpProvider',function($routeProvider, $httpProvider){
  $routeProvider.when('/products', {
    controller: 'products',
    templateUrl: 'partials/products.html'
  });
  $routeProvider.when( '/product/:id' , {
        controller: 'product',
        templateUrl : 'partials/product.html'
    });
  $routeProvider.otherwise({
    redirectTo: '/home'
  });
}]);
这是我的控制器文件:

'use strict';

var controllers = angular.module('controllers',['ngRoute']);

// display all products
controllers.controller('products',['$scope', '$http',function($scope, $http){
  // $scope.displayProducts = function(){
    //load data from file
    $http({
    method: 'GET',
    url: 'model/products.json'
    }).then(function successCallback(response) {
      // display the data
      $scope.products = response.data;
      }, function errorCallback(response) {
        $scope.products = 'Error downloading data...';
    });
  // };
}]);

// edit single product
controllers.controller('product',[ '$scope' , '$http' , '$routeParams' ,function($scope, $http, $routeParams){

    //load data from file
      $http({
      method: 'GET',
      url: 'model/products.json'
      }).then(function successCallback(response) {
        // display selected data
        $scope.product = response.data[$routeParams.id];
        }, function errorCallback(response) {
          $scope.product = 'Error downloading data...';
      });
}]);

我希望第二个控制器打开product.html,用户就可以编辑产品了。在product.html中只有
{{product}
。当我在1.3.15版中使用Angular时,它都能工作,但当我将其更改为Angular 1.6.10版时,
{product}
不会显示任何内容。为什么呢?控制台中没有此错误。

您确定
$routeParams
有值吗?
响应值是多少?你确定
response.data[$routeParams.id]
找到了实际数据吗?是的,我确定,当我使用angular 1.3.15时,一切都很好。当我将其更改为1.6.10时,它不会显示任何内容。附加文件的方式:
是否添加了调试语句?如果你
console.log(response.data)
你会得到什么?如果您
console.log(response.data[$routeParams.id])
呢?那么
console.log($routeParams)
呢?在Angular 1.3.15中
console.log(response.data)
是两个对象(我的产品)
console.log(response.data[$routeParams.id])
是我在url
console.log($routeParams)
中传递id的对象,带有字段(
id:0
)它也是我在Angular 1.6.10中的产品,我有一个空的控制台…如果你有一个空的控制台,那就意味着你的
$http
调用没有结束,你永远不会使用成功或错误函数。我会研究这个(可能是url)。