GET /#/car/view/0
で予期しない要求エラーが発生します.0は:carId
です。AngularJSの予期せぬ要求ngmock
これは、ngMockバックエンドで基本的な角鮮明なアプリケーション向けです。 $httpBackend.whenGET(carUrl)
が働き、すべての車のリストを返します。 addCar()
も機能します。
私は私が正しいURLの取得とIDで詳細なビューを取得するといくつかの助けを必要と詳細ビュー
を得ると間違ってやっているかを把握することはできません。明らかに、URLは静的であるため、以下のコードは動作しますが、ID変数を持つURLを取得する正しい方法を見つけることができません。
thecode:
App.js
ルーティング:
.when('/car', {
templateUrl: 'pages/car/car.html'
})
.when('/car/view/:carId', {
templateUrl: 'pages/car/carView.html',
controller: 'carViewCtrl',
controllerAs: 'ctrl'
})
.when('/car/addCar', {
templateUrl: 'pages/car/carAdd.html'
})
app.run:私のモックバックエンドが定義されている これがされ
window.app.run(function($httpBackend) {
var cars = [
{
id: 0,
name: ‘car0’,
address: 'adress0',
tel: 'tel0',
email: 'email0'},
{
id: 1,
name: ‘car1’,
address: 'adress1',
tel: 'tel1',
email: 'email1'
}];
var carUrl = “/#/car”;
//this works and gives back the list of all cars
$httpBackend.whenGET(carUrl).respond(function(method,url,data) {
return [200, cars, {}];
});
//this is where it goes wrong I think
$httpBackend.whenGET(‘/#/car/view/:carId').respond(function(method, url, data){
return [200, cars, {} ];
});
});
CarService.js
window.app.service(‘CarService', ['HTTPService', '$q', '$http', function (HTTPService, $q, $http) {
'use strict';
cars = [];
this.showDetails = function (carId){
var deferred = $q.defer();
HTTPService.get('/car/view/' + carId).then(function resolve(response){
deferred.resolve(response.data);
}, function reject(response){
deferred.reject(response);
});
return deferred.promise;
};
carView.js
window.app.controller(‘carViewCtrl', ['$scope', '$routeParams', '$location', ‘CarService', function ($scope, $routeParams, $location, CarService) {
'use strict';
$scope.carId = $routeParams.carId;
initCar($scope.carId);
function initCar(carId) {
CarService.showDetails(carId).then(function success(car) {
$scope.car = car;
}, function error(response) {
});
}
}]);
carList.html
<tr ng-repeat=“car in cars track by $index">
<td>{{$index}}</td>
<td><a href=“/#/car/view/{{car.id}}”>{{car.id}}</a></td>
<td>{{car.name}}</td>
<td>edit</td>
</tr>
お返事ありがとうございます。私はちょうどそれを試して、それは今私に 'carId not defined'を与えます。 私はデータへのアクセス方法を完全に理解していませんが、もう少し説明できますか?ありがとう! – spacewalk92
@Joey Ciecahnowiszもう少し説明してください。私も同じ問題を抱えています。 – user3599415
ありがとう!私はそれを働かせる。私はプランナーを使用しませんでしたが、実装しようとしたときにいくつかのエラーが発生しましたが、リンクしたドキュメントに従って問題を解決しました。 – spacewalk92