2016-02-11 92 views
1

我想要做的是为每个演讲者创建一个活动的发言者动态列表和个人档案页面。我已经使用ng-repeat创建了列表,链接正在使用ng-href。使用角度路由我甚至已经加载了页面模板,唯一遗漏的是找出如何使用特定于所选扬声器的数据填充页面模板。为了澄清,有一个动态列表由不明数量的发言人制作,每个发言人都有一个使用相同模板的个人资料页面,但是我正在努力的做法是在该模板中填写个人发言人的详细信息。这里也有类似的问题,尽管它们似乎试图创建动态模板而不是动态内容,并且不能解决存在的问题。下面是一些现有代码:带路由的角动态页面

// The routing: 

.when('/profile/:name*', { 
    templateUrl : 'pages/profile.html', 
    controller : 'profileController' 
}) 

// The lists and links on the index page... 

<div class="grid" ng-repeat="speaker in home.speakers"> 
    <a ng-href="profile/{{speaker.url}}"> 
     <div>....</div> 
    </a> 
</div> 
+0

阅读[手册](https://docs.angularjs.org/api/ngRoute/service/$route) - 在页面的底部,你将有一个很好的例子来实现这个 –

+1

@AlonEitan你说得对,我甚至没有看到过。我会调查它,谢谢。 –

回答

0

路线

在你的路由

,你应该有类似

.state('Prof', { 
    url: '/Prof', 
    templateUrl: 'rout/to/yout/template.html' 
}) 

服务/厂

创建一个工厂来从数据你的休息api与一个http调用,就像这样。

.factory('profContent', function($http){ 
    return { 
    getContent: function(profid){ 
     return $http.get('http://localhost:3000/api/prof', { params: { user_id: profid }); 
    } 
    }; 
}); 

控制器

.controller('profCtrl', ['$scope', 'profContent', function($scope, profContent){ 

    profContent.getContent(profid).then(function(response){ 
    $scope.firstName = response.data.fName; 
    $scope.lastName = response.data.lName; 
    }); 
}]); 

使用控制器设置$scope与您从服务得到的东西的看法。

结论

您可以传递一个绑定到范围PARAM并用它来查询数据库,并得到正确的数据。

+0

谢谢你的回答,这肯定不同于我的想法。我目前使用ajax创建了一个列表来创建JSON数据。有没有继续的方式,而不是使用工厂?我以为我有这个问题,但我可能会删除它 –

+0

不太确定阿贾克斯,不要以为你真的需要它的角度。在Angular中,数据流示例可以是'mongodb> express route> factory> controller> view'。这通常是可接受的geting和发布数据的方式,因为angular是单页面,它不应该需要ajax。 –

+0

对不起,让我纠正自己,在快速谷歌搜索后,我发现服务/工厂http调用是ajax调用[这里是一个链接](http://www.tutorialspoint.com/angularjs/angularjs_ajax.htm) –