Javascript AngularJS版本1.6.10中的templateUrl中不显示来自控制器的数据
我开商店只是为了学习角度,但我有问题,我可以在任何地方找到解决办法。该网站位于我的电脑本地。我现在甚至不使用本地主机 我有文件application.js来设置我的站点的路径: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
'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])
是我在urlconsole.log($routeParams)
中传递id的对象,带有字段(id:0
)它也是我在Angular 1.6.10中的产品,我有一个空的控制台…如果你有一个空的控制台,那就意味着你的$http
调用没有结束,你永远不会使用成功或错误函数。我会研究这个(可能是url)。