2015-04-01 3 views
0

Неслучайно новый для AngularJS и WebAPI здесь, и цифра наилучшего способа обучения - это делать. Извиняюсь заранее, если этот вопрос кажется простым - я провел день, просматривая StackOverflow и пробовал их все.

В настоящее время у меня есть отдельный мастер & Подробный вид, как со своим контроллером. Я пытаюсь передать выбранный идентификатор до контроллера детали, поэтому я могу запросить мою базу данных с помощью идентификатора, хотя получаю «неопределенный» на моих $ routeParams. Я не уверен, что я пропустил что-то простое, или я даже правильно подхожу к этому.

Контроллер, похоже, не нравится, когда я ввожу '$ routeParams'. Модуль

Моего app.js:

var app = angular.module("ProjectDashboardModule", ["ngRoute"]); 
app.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) { 

    $routeProvider 
     .when("/", { templateUrl: "/Home/Index" }) 
     .when("/Project", { templateUrl: '/Project/Index', controller: 'ProjectCrudController' }) 
     .when("/Project/project/:id", {templateUrl:'/Project/project', controller: 'ProjectTaskController' }); 

    $routeProvider.otherwise({redirectTo: '/home' }); 
    $locationProvider.html5Mode(true); 
}]); 

мой Factory.js:

app.factory('projectFactory', ['$http', function ($http) { 
    var urlBase = '/api/Projects/'; 
    var projectFactory = {}; 

    projectFactory.getProjects = function() { 
     return $http.get(urlBase); 
    };  
    projectFactory.getSingleProject = function (id) { 
     return $http.get(urlBase + '/' + id); 
    };  
    return projectFactory; 
}]); 

моего ProjectTaskController.js:

app.controller('ProjectTaskController', ['$scope', "$routeParams", 'projectFactory', function ($scope, $routeParams, projectFactory) { 
    alert($routeParams.id) 
    $scope.project; 
    $scope.message; 
    getProjectById($routeParams.id);  

    function getProjectById(id) { 
     projectFactory.getSingleProject(id) 
     .success(function (data) { 
      $scope.project = data; 
     }) 
     .error(function (error) { 
      $scope.message = 'error retrieving project ' + error.message; 
     }); 
    } 
}]); 
+0

is '$ route.current.params.id' любой другой? – Ronnie

+0

Same ... undefined :( – chickenricekid

+0

У вас есть '', определенный в вашем index.html? – Ronnie

ответ

0

я обнаружил, что моя проблема в том, что все моем ссылки на угловые сценарии были рассеяны. Я переместил все мои ссылки на скрипт (контроллер, фабрику, модуль) в index.cshtml и исправил проблему.

Смежные вопросы